{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import glob\n",
    "import os \n",
    "import string\n",
    "from pathlib import Path\n",
    "\n",
    "from PIL import Image\n",
    "import numpy as np\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import DataLoader, Dataset\n",
    "from torchvision import transforms\n",
    "from torchvision.models import resnet18\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from utils.utils import strLabelConverter, decode_prediction\n",
    "from utils.plotting import plot_loss, print_prediction\n",
    "from layers import blockCNN, blockRNN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<torch._C.Generator at 0x7f7b97efcd30>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "torch.manual_seed(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "plt.style.use('seaborn')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### <center>  Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "class CaptchaDataset(Dataset):\n",
    "    def __init__(self, img_dir: str):\n",
    "        pathes = os.listdir(img_dir)\n",
    "        abspath = os.path.abspath(img_dir)\n",
    "        self.img_dir = img_dir\n",
    "        self.pathes = [os.path.join(abspath, path) for path in pathes]\n",
    "        self.list_transforms = transforms.Compose([transforms.ToTensor()])\n",
    "        \n",
    "    def __len__(self):\n",
    "        return len(self.pathes)\n",
    "    \n",
    "    def __getitem__(self, idx):\n",
    "        path = self.pathes[idx]\n",
    "        text = self.get_filename(path)\n",
    "        img = Image.open(path).convert('RGB')\n",
    "        img = self.transform(img)\n",
    "        return img, text\n",
    "    \n",
    "    def get_filename(self, path: str) -> str:\n",
    "        return os.path.basename(path).split('.')[0].lower().strip()\n",
    "    \n",
    "    def transform(self, img) -> torch.Tensor:\n",
    "        return self.list_transforms(img)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<center> Dataset Params"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "TRAIN_DIR = Path('data/train')\n",
    "VAL_DIR = Path('data/val')\n",
    "BATCH_SIZE = 8\n",
    "MODEL_PATH = Path('models/crnn.pt')\n",
    "N_WORKERS = 4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.float32"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "batch_imgs.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'abcdefghijklmnopqrstuvwxyz0123456789'"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "alphabet = string.ascii_lowercase + string.digits\n",
    "label_converter = strLabelConverter(alphabet)\n",
    "alphabet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_dataset = CaptchaDataset(TRAIN_DIR)\n",
    "val_dataset = CaptchaDataset(VAL_DIR)\n",
    "train_dataloader = DataLoader(train_dataset, batch_size=BATCH_SIZE, \n",
    "                              num_workers=N_WORKERS, shuffle=True)\n",
    "val_dataloader = DataLoader(val_dataset, batch_size=BATCH_SIZE, \n",
    "                            num_workers=N_WORKERS, shuffle=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([8, 3, 50, 200]) 8\n"
     ]
    }
   ],
   "source": [
    "imgs, texts = iter(val_dataloader).next()\n",
    "print(imgs.shape, len(texts))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### <center> Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def weights_init(m):\n",
    "    classname = m.__class__.__name__\n",
    "    if type(m) in [nn.Linear, nn.Conv2d, nn.Conv1d]:\n",
    "        torch.nn.init.xavier_uniform_(m.weight)\n",
    "        m.bias.data.fill_(0.01)\n",
    "    elif classname.find('BatchNorm') != -1:\n",
    "        m.weight.data.normal_(1.0, 0.02)\n",
    "        m.bias.data.fill_(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "class CRNN(nn.Module):\n",
    "    def __init__(self, hidden_size: int, \n",
    "                 vocab_size: int, \n",
    "                 bidirectional: bool = True, \n",
    "                 dropout: float = 0.5):\n",
    "        super(CRNN, self).__init__()\n",
    "        self.hidden_size = hidden_size\n",
    "        self.vocab_size = vocab_size\n",
    "        self.bidirectional = bidirectional\n",
    "        # make layers\n",
    "        # convolutions \n",
    "        resnet = resnet18(pretrained=True)\n",
    "        modules = list(resnet.children())[:-3]\n",
    "        self.resnet = nn.Sequential(*modules)\n",
    "\n",
    "        self.cn6 = blockCNN(256, 256, kernel_size=3, padding=1)\n",
    "        # RNN + Linear\n",
    "        self.linear1 = nn.Linear(1024, 256)\n",
    "        self.gru1 = blockRNN(256, hidden_size, hidden_size,\n",
    "                             dropout=dropout, \n",
    "                             bidirectional=bidirectional)\n",
    "        self.gru2 = blockRNN(hidden_size, hidden_size, vocab_size,\n",
    "                             dropout=dropout,\n",
    "                             bidirectional=bidirectional)\n",
    "        self.linear2 = nn.Linear(hidden_size * 2, vocab_size)\n",
    "        \n",
    "    def forward(self, batch: torch.Tensor):\n",
    "        \"\"\"\n",
    "        ------:size sequence:------\n",
    "        torch.Size([batch_size, 3, 50, 200]) -- IN:\n",
    "        torch.Size([batch_size, 256, 4, 13]) -- CNN blocks ended\n",
    "        torch.Size([batch_size, 13, 256, 4]) -- permuted \n",
    "        torch.Size([batch_size, 13, 1024]) -- Linear #1\n",
    "        torch.Size([batch_size, 13, 256]) -- IN GRU \n",
    "        torch.Size([batch_size, 13, 256]) -- OUT GRU \n",
    "        torch.Size([batch_size, 13, vocab_size]) -- Linear #2\n",
    "        torch.Size([13, batch_size, vocab_size]) -- :OUT\n",
    "        \"\"\"\n",
    "        batch_size = batch.size(0)\n",
    "        # convolutions\n",
    "        batch = self.resnet(batch)\n",
    "        batch = self.cn6(batch, use_relu=True, use_bn=True)\n",
    "        # make sequences of image features\n",
    "        batch = batch.permute(0, 3, 1, 2)\n",
    "        n_channels = batch.size(1)\n",
    "        batch = batch.view(batch_size, n_channels, -1)\n",
    "        batch = self.linear1(batch)\n",
    "        # rnn layers\n",
    "        batch = self.gru1(batch, add_output=True)\n",
    "        batch = self.gru2(batch)\n",
    "        # output\n",
    "        batch = self.linear2(batch)\n",
    "        batch = batch.permute(1, 0, 2)\n",
    "        return batch"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### <center>  Model Parameters and Initialization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "37\n"
     ]
    }
   ],
   "source": [
    "hidden_size = 256\n",
    "vocab_size = len(alphabet) + 1 # extra character for blank symbol\n",
    "bidirectional = True\n",
    "dropout = 0.1\n",
    "weight_decay = 1e-5\n",
    "momentum = 0.9\n",
    "clip_norm = 5\n",
    "max_epoch = 50\n",
    "print(vocab_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([13, 8, 37])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "crnn = CRNN(hidden_size=hidden_size, vocab_size=vocab_size, \n",
    "            bidirectional=bidirectional, dropout=dropout).to(device)\n",
    "crnn(imgs.to(device)).shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr = 0.02\n",
    "optimizer = torch.optim.SGD(crnn.parameters(), lr=lr, nesterov=True, \n",
    "                            weight_decay=weight_decay, momentum=momentum)\n",
    "critertion = nn.CTCLoss(blank=0)\n",
    "scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, verbose=True, patience=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "def validation(model, val_losses, label_converter):\n",
    "    with torch.no_grad():\n",
    "        model.eval()\n",
    "        for batch_img, batch_text in val_dataloader:\n",
    "            logits = crnn(batch_img.to(device))\n",
    "            val_loss = calculate_loss(logits, batch_text, label_converter)\n",
    "            val_losses.append(val_loss.item())\n",
    "    return val_losses"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calculate_loss(logits, texts, label_converter):\n",
    "    # get infomation from prediction\n",
    "    device = logits.device\n",
    "    input_len, batch_size, vocab_size = logits.size()\n",
    "    # encode inputs\n",
    "    logits = logits.log_softmax(2)\n",
    "    encoded_texts, text_lens = label_converter.encode(texts)\n",
    "    logits_lens = torch.full(size=(batch_size,), fill_value=input_len, dtype=torch.int32)\n",
    "    # calculate ctc\n",
    "    loss = critertion(logits, encoded_texts, \n",
    "                      logits_lens.to(device), text_lens)\n",
    "    return loss"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### <center> Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "epoch = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "26"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_losses = []\n",
    "val_losses = []\n",
    "val_epoch_len = len(val_dataset) // BATCH_SIZE\n",
    "val_epoch_len"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd8AAACdCAYAAAD153KLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnXm8nvOZ/98idBu1ldLSolJa+1IETYgl0TTUNqURoahirCkjBCF2zVhSOpZSsXdSJp2xhkZpaGonWlQxZYZ0ioZ2aBG/P7ze930933Ofk5zkeJL8cn3+Oec8z/e+7+/2nOf7uZbPtcj777//PolEIpFIJNqGXvO6A4lEIpFILGzIL99EIpFIJNqM/PJNJBKJRKLNyC/fRCKRSCTajPzyTSQSiUSizcgv30QikUgk2oz88k0s8DjppJMYNGgQgwYNYq211mLrrbeu/v7LX/7SrXvdcsst1TXHHnssF110UY/1869//Sv//M//zMCBA/na177GmWeeyXvvvdflNb///e8ZNmwYO+ywA0OGDOGOO+7o0Obuu+9mjTXW4KWXXmq8x4ABAxrfu/HGG1l//fWrudp+++058sgjee211+ZsgAHbbbcdU6dOnePrn3/+efbee28GDRrEkCFDuOmmm2Z5zV133cVOO+3EDjvswJ577skzzzzToc1ZZ53FgAED5rhfiURPofe87kAiMbc4+eSTq98HDBjA2WefzcYbbzxH97rgggvYcMMN+Yd/+Iee6l6FSy65hHfeeYdbb72Vd999l29/+9vceOON7L777p1ec/jhh7Pvvvuy66678vTTT7PHHnvQt29fllhiCQDeeustxo4dy1JLLTVHfVp//fX58Y9/DMDMmTMZM2YMY8aM4dxzz52j+/UURo4cyZAhQxg6dCh//OMfGTJkCOuttx6rrbZaY/vp06dz7LHHct1117H66qtzzTXXcOKJJ3L99ddXbZ566inuvPPOdg0hkegSyXwT/99j2LBhnHvuueywww48/PDDDBs2jIkTJ7a8P3HiREaOHMnzzz/PsGHDePDBBwGYMWMGBxxwAFtttRX77bdfxYrHjh3Ldddd1+FZU6dOZccdd+TMM89k4MCBDB48mEcffRSAp59+mk022YRevXqx+OKLs+GGG1bsbNq0aeyyyy4MHDiQvfbaixdffJH33nuPgw46iJ122gmANdZYg8UXX7yFxY4bN44dd9yRT3ziE3M9T7169WLo0KFMmTKluveoUaPYbbfdqi/oCy+8kIEDB7L11ltz6qmnVsx92rRpDB48mIEDB3L66ae33Hf48OE8+eSTHZ43btw4jj32WA488EC22WYbhg8fzquvvgrAM888Q9++fQFYfvnlWXXVVXnuuecAuOmmmxg4cCADBw7k6KOP5u9//zu9e/dm7NixrL766gBstNFGPPvss9WzZs6cyejRozniiCPmep4SiZ5AfvkmFgpMmzaNm2++mQ033LDTNmeccQYAV111VcWcp0yZwjnnnMOdd97Jq6++WjGnESNGsOeeezbe59lnn2Xdddfl9ttvZ5999mH06NEA9O3bl0mTJvH222/z5ptvMmXKFLbYYgsAjjrqKA4//HBuv/12tt12W8aMGcOiiy7K4MGD6d37AwPVY489xvvvv88qq6wCfPBlft9997HPPvvM7fRUePfdd1l88cWrv3/xi19wySWXsM8++3Dbbbdx6623MmHCBCZNmsSLL75YHUBGjx7N8OHDuf3229lggw1aDghXXnkla621VuPz7rjjDkaNGsVdd93F8ssvz8UXX1zN1S233MLMmTN57rnneOmll1hvvfV46aWXOPvssxk/fjy33XYbb731FuPHj2fZZZelX79+1X3vuece1ltvverv66+/ni9+8YstryUS8xL55ZtYKNC/f3969er+du/Xrx9LLbUUvXv3pk+fPkyfPn2W13z84x9nhx12AGD77bfnt7/9LW+99RZDhw7l3XffpW/fvvTt25fPf/7z9O/fn+eff57XX3+d/v37A7DXXnsxbty4lnu+/PLLjBgxglGjRvGxj32M999/n5NOOolRo0ax2GKLdXtcTfj73//OFVdcwXbbbVe9tt5667HMMssAcOuttzJkyBCWWGIJevfuze67784dd9zB3/72N5544olqzIMGDeJjH/vYbD1z0003ZeWVVwY+mKtHHnkEgOOOO44JEyaw2WabMXjwYA466CCWW245pkyZwgYbbMCnP/1pFllkEcaOHdvh8HH//fdz5ZVXMnLkSAD+93//lyuvvJIRI0bM1fwkEj2J9PkmFgosueSSc3Rd9P0uuuiiswyQAvjkJz/JIossUv0O8MYbb3D55Zez0korcdlll/Huu+9y5JFHctlll7HRRhtVPlyA3r17V2wX4LnnnuM73/kOBx54IDvuuCMAN9xwA6uvvvoc+7bFo48+yqBBg4APzM59+/ble9/7XvV+nLc333yTq666qgp+eu+991hmmWX485//DNRztcgii1TjnhWir/qTn/wkb7zxBgCHHnoohx12GLvssguvvPIKQ4cO5ctf/jKvv/56y70/8pGPtNzvzjvvZMyYMfzrv/5rZYI+44wzOOSQQ1hyySV58803Z29iEokPGfnlm1jo0KtXL2bOnFn97ZdHTyHeb8aMGcAHXzJTpkxh5MiRLLbYYiy22GJss802TJo0iW233ZY///nPzJw5k169evHOO+8wffp0VlppJaZPn87+++/P0UcfXTFL+CCyd9q0aUyePBmA1157jd12243zzjuPzTbbbLb7GgOuZoXll1+eAQMGsNdee7W8/vbbbwPwl7/8hSWWWIKZM2dW454VXn/99er3GTNmsOSSS/Laa6/x5JNPMmTIEABWWGEFNthgAx566CGWXnrpih37zLfffptPfepT3HfffZx22mlcfvnlfOELX6jaTJ48malTp3LWWWfx3nvvMWPGDLbYYgsmT57cYmJPJNqJNDsnFjost9xyPPXUUwA88sgj/OEPf6je6927d8W+5hRvv/125Ru+/fbbWXvttfnIRz7CqquuWn1Zvvfee9x777306dOHVVZZhRVWWKFKI5owYQInnngi8EEa1fDhw1u+eAEuvfRS7r//fqZMmcKUKVNYccUVKzPth4UBAwYwceJE3nrrLeADP+pNN93ERz/6UdZcc00mTZoEwM0338zf/va32brnQw89xMsvvwx8MFcbbbQRSy21FMsss0w1VzNmzOCRRx6hT58+9O/fn4cffpiXXnqpMr1PmDCBt956i5EjRzJu3LiWL174YI2dpwkTJrDiiisyZcqU/OJNzFMk800sdNh333056qijuOeee9hkk03YfPPNq/cGDRrEHnvswamnntrlPcaOHctnPvOZxqCrz372szz00EOcc845LLroopx55pnAB37M0aNHs/322wOwzjrrcNBBB7HIIotw3nnnccwxx/Av//IvLLfccpxxxhlMnz6dyZMn8/zzz7dEVh9zzDHzJFd1u+2249lnn2XnnXcG4HOf+xynnXYa8EHA1ciRI7n44ovp169fyxfg8OHDOeaYYxqDrjbffHNO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2rRpQL0HZXm//vWvqzZrr702UK+F826BkRgvYOT/H/7wB6CVWc4N3BdN+1Q2an/cX/4NdcyDVoVXXnkFaLWsyJSdnxVXXLFDP7LcZqIJyXwTiUQikWgz8ss3kUgkEok2Y6E0O5fBN7fccgsAX/ziFzu01aSm6eorX/lK9d7ll18OwOGHHw7ApEmTgNqcB3WQktDstc0221SvWeHo9ttvB+Dll18GYMMNNwRaa/9qal1llVUA+P3vfw/UJty5RZ8+farfNRk+/vjjQG3W1aRpP6E2xdkP50uTHdTmdIOwvF80AWtq99lWUormcJ+v2bNMYYr307yoSVMTYAwWK8377otoJnTPzG9mZ823pslpHne8isNAXXfadfiv//ovAC688MKqjcF17mHNsA8++GDVxmBBX3vggQeA2tQMcPfddwO1IIvzbupdNN2auqTJtqcEWhxnrMHtfOn+2XHHHYF6f8X5ci40SRtUpbgOwL333tvyjNK0D1npK9GMZL6JRCKRSLQZCyXzlY3JEqZMmQLAo48+WrW54oorgPoEWybaQx1E8qMf/QiAf/u3fwPqlCOomYN1gH1mZF5HHnkkULNYGaGsL57cZabWHrYyU0+xBVOXIgy+kY0aEBODqmQHzoljiOxRVuB7/oyBbs634+nbty/QKse5xhprADVLKcVIZHRQz+HDDz8M1ClaMU3JFBKf3SSROb8GyygBatqP6zB48GAABg4cWLV1L8roRJwL97dttRxY2Qpg9OjRAOy///5AzQj9CTWTdG20iBiUFVONNt54YwCeeOKJlmvmFlqtotCLwYP77bcfUFum/DzGz6XzUjJXLV5Q7xEZvcw6Bv25z5tEYBILL5L5JhKJRCLRZiyUzFe2+PTTTwPwpS99CahTCQC22GILAMaMGQPAoEGDZnnf3XffveV+UKcRydz0K0e24Qn9ggsuAOpUpXvuuQdo9WHK6gYMGNAyhp6qo7veeut1eM36vZ7cTduJfljZosxCxhTTRhyn7Ng2UZzhC1/4AgCf+9znANhll1063MfrZRcls4gyofrLV111VQBOP/30lv5CneqkDzmOS0Trw/wEmaRCLLJ3WejNN99ctXVPb7vtti33aBKhuP766wHo378/0Fp/+gc/+AEA//Ef/wHUKXff/OY3qzbf/e53Abj22muBet8quqFFIr7nuvaUlcH9pXUA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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAroAAAF0CAYAAADM95pAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd8FHX+P/BXsptKQgqJIRKaNEWOswFiAQxgKIrCnRIRy3lwfA/0RLGgWOAHp4KAFQVRPA8ROIqICgbQBOmQUIO0EALpbHrblN2d3x9hN7vJ7M7OZntez8fDh5uZz8y8Z3aZfe9nPsVHEAQBRERERERextfVARAREREROQITXSIiIiLySkx0iYiIiMgrMdElIiIiIq/ERJeIiIiIvBITXSIiIiLySkpXB+Dt+vTpgy5dukChUJgsX7RoEfr372/XY8XHx2PRokW44447LJabM2cOdu/ejZCQEMOyb775BjExMTh79izmzp2L0tJSREREYO7cubjxxhtb7GP27NkYOHAgJkyYYLL8//7v/5CVlQUAuHTpkuHcQ0JCsHHjRqvPpbCwEH//+9/x008/Wb1NTk4O7r//fvzxxx9Wb9Na9fX1mDdvHlJTU6FQKJCYmIgnn3yyRTlBELBkyRLs3LkTPj4+GDlyJGbNmgUAqKiowOuvv44LFy7Az88P06dPx5gxYwAAKSkp+OCDD1BXV4fw8HC8/vrrhs9NcXExXnrpJeTk5GDnzp1WxfT0008jKysLgYGBhvK//PKLw64PkTdoS/dxnU6H+Ph4zJs3D0OHDjUpv2TJEhQUFOD99983G9fs2bPRpUsXTJ8+3WT55s2bsXXrVvznP/+xeF72lJeXhzlz5iAvLw/BwcF49dVXceedd7Yol5+fj7feegs5OTkQBAFPPPEEHn/8cQDm78EajQaLFy9GSkoK6urq8Pjjj2PKlCkALL83VVVVmDNnDo4fPw5/f3+89NJLSEhIAACsWLEC33//PXx8fNCjRw+8/fbbiI6OdsKV8nICOVTv3r2F/Px8pxzrvvvuE44cOSJZ7rnnnhN+/PFH0XWjRo0Sdu7cKQiCIGzfvl144IEHRMu9+uqrwqZNmywex5nnLgiCkJ2dLdx0001OO54gCMKKFSuEGTNmCFqtVigpKRHuu+8+4eTJky3K/fTTT8Ijjzwi1NXVCbW1tcKECROEX375RRAEQXjzzTeFBQsWCIIgCFeuXBHuvPNOoaCgQCgvLxduu+024cyZM4IgCMLu3buFIUOGCIIgCKWlpUJCQoLwzjvvCCNGjLA6pvHjxwtHjx512PUg8kZt7T6+dOlS4cUXXzRZptPphGHDhgn79++3GNerr74qLFu2rMXyTZs2CU899ZTFbe3tmWeeEb7++mtBEAThxIkTwl133SWo1WqL5fLy8oTbb79dOH/+vMV78Jo1a4TExEShtrZWqKioEBISEgzvm6X3Zs6cOcL8+fMFnU4nZGRkCJMnTxYaGhqEvXv3CiNHjhQqKioEQRCE999/X5g1a5Y9L0ebxaYLLnTo0CGMGzcO7733HhISEjB27FgcP34cAFBXV4e33noLCQkJGD16NN577z1otVoAQHp6OiZMmICEhARMnjwZ2dnZhn2mp6fj0UcfxT333IN3333XsPypp57C6dOnAQCVlZUIDQ1tEc+5c+dQWVmJESNGAABGjRqF4uJiXLx40W7nHB8fj08//RQJCQnIy8tDZmYmHnvsMYwePRojR4401ODm5OSgb9++ABprAv71r3/h9ddfR0JCAsaMGYMLFy7IOm5ZWRmef/55w/ZffPGFYd0HH3yAhIQEJCQk4Mknn0RhYaHF5a+88gp+++03AI21oY8++ih8fX0RERGBUaNGidaQ/vLLLxg/fjz8/f0REBCACRMmYPv27QCApKQkJCYmAgA6d+6MgQMH4tdff0V2djaCgoIMNTF33nknCgoKUFFRAR8fH3z22WeIj48XPZa5mKqqqtC+fXtZ146IzPPG+/j48ePx22+/obq62rDsyJEjAIBBgwYBAJYtW4aEhASMGDEC06ZNQ0VFhdX7b+7s2bNITEzEqFGj8NBDD2HPnj0AgOrqasyYMQOjR4/G8OHD8cYbb6ChocHscv35FhUVobKyEocOHcKjjz4KAOjfvz9iY2Nx6NChFsefOHEiHnnkEQBAbGwsunTpgqysLIv34P379+OBBx5AQEAAQkND8Ze//AVJSUkAzL839fX1+Pnnn/HPf/7TUGu7evVqKJVKnD9/Hv369TNsd+edd8r+niNxTHRdLCMjA/3790dSUhKefvppzJ07F0DjY46CggL8/PPP+P7775GammpIAl988UU8//zzSEpKwogRIzB//nzD/k6fPo21a9di06ZNWLNmDfLz8w37u/nmmwE0Pipfu3Ytxo0bh3HjxmHDhg0AgKysLMTFxZnE17lzZ2RmZtr1nAsLC5GUlITrr78eixYtwn333Yft27fjnXfewZw5cww3LGO///47Jk2ahKSkJAwaNAjffPONrGMuXboUYWFhSEpKwnfffYe1a9ciNTUVFy5cwC+//IKffvoJSUlJGDlyJA4cOGB2OdD4uFKfYOqbZ+h16dJF9HplZWWJlistLUVZWZnouh49esDX19dw3KSkJPTr1w/t27dHWFgYbrjhBtFztRRTRUUFPvroIzz44IP4y1/+gl9//VXWdSSilrztPt6tWzf06dPHpEnU1q1b8dBDD8HX1xfp6elYs2YNNm3ahB07dqC+vh7ffvut/AuHxqYSL774IiZPnoxffvkFCxYswKxZs1BVVYUtW7agffv22L59O5KSkqBQKJCRkWF2OdD4Qz8qKgqXL19GREQEgoODDcfq0qULLl261CKG+++/H+3atQMAHDt2DCqVCrfffrvFe7CPjw90Op1hH8HBwbhy5QoAy+9NQEAANm/ejDFjxuCvf/0r9u/fDwAYOHAgjh07hoKCAmi1WuzcuRN33XWXTdeUTLGNrhM88cQTJm27IiMj8d133wFo/McxevRoAI3/2N544w2o1WqkpKTgmWeegVKphFKpxIMPPoh9+/ahf//+KC0tNbSdmjx5Mh577DHDvh944AEoFArExMSgQ4cOKCgoQGxsrEk89957L3r27ImxY8ciMzMTkydPRteuXaFWqxEQEGBSNiAgADU1NXa9HsOGDTO8/uyzzyBcm4X69ttvR11dHVQqVYttevTogX79+gEA+vbtK7td6e7du7FixQoAQHh4OEaOHIl9+/YhMTERJSUl+PHHHzF8+HA88cQTABqTcbHlzdXW1ppcs8DAQKjV6hblml9bfbna2lr4+vrCz8/PsC4gIAAlJSUIDAzE/PnzMW3aNAQGBkKn0+HLL7+UPFdLMY0aNQrDhw/Hvffei7S0NEydOhXff/89unbtKrlforasrd3HJ0yYgB9++AEPP/ww6uvrkZSUZOhn0a9fP6SkpMDf3x8AcOutt5rUSMuRk5ODoqIijB07FgDwpz/9Cddffz1OnTqFyMhIHDt2DHv37sXAgQMxb948AI0Jo9hyY83vg4Dl65CXl4fJkyejsrISCxYsQGRkJACYvQffddddWLduHR566CFotVps3boVQUFBAMy/N76+vqisrERAQAC2bduGPXv24F//+hd27dqFm2++GQ8//DDi4+MRFBSEmJgYw+eLWoeJrhOsXr0aHTt2FF2n/2Wofw00/hosKSlBWFiYoVxYWBiKi4tRWlpq8khEfwPV0/8qBQCFQmF4TGZs5syZhtc9evTA2LFjkZKSgltuuQV1dXUmZWtra032aQ/G57Vnzx58/vnnKC0thY+PDwRBMPmVrGd8zubOy5KSkhKTR/bt27fH1atXERMTg48//hhff/015s+fjwEDBmDevHmIjY01u9xYUFCQyTVTq9UmNQhS5YKCgqDT6VBfX2/40qitrUVwcDAKCwsxZ84cbNiwAX369MGhQ4fw7LPPIikpyeJ7YikmfU0T0PjDYuDAgdi7dy8TXSIJbe0+PmbMGLz77rsoLCzEsWPH0KtXL8N9Qq1W49133zU0AygvLzepwJCjpKQEoaGhhusHNF7DkpISjB07FuXl5fjoo4+QmZmJcePG4bXXXsPo0aNFl+vvoUDL+6D+OojdnwHg+uuvx2+//Ybs7GxMnToVgYGBuPHGG83egx955BFcuXIFjzzyCK677jrcddddhuYh5t4bfVKs/1Fz7733IjY2FidOnIBGo8Hu3buxb98+hIWFYcWKFXj55ZexcuVKm64rNWHTBRcrKyszvC4vLwfQWOMYFRVlsq6srAxRUVGIiIhAWVmZIRlsaGhATk6O1cfT6XQ4e/asyTJBEODn54cbbrgBWVlZhn1rNBpkZWWhR48eNp+fJQ0NDZg5cyb++c9/IikpCVu3bjW52dmTuesJAIMHD8YXX3yBffv2ITY2FosXL7a43NgNN9xg8kgwIyMDPXv2tLpceHg4IiMjTR6n6dcdO3YMcXFx6NOnD4DGtnG+vr6Sbe3MHau+vh7nz59vUd64NpmI5PPG+3hISAji4+Oxfft2/Pzzzxg/frxh3TfffIOsrCxs3rwZSUlJmDhxoqx9G+vQoQPKy8sNT/aAxuvUoUMHAEBiYiI2bNiAbdu24fTp09iyZYvF5Xpdu3ZFaWmpSdthsftzfX09NmzYYPgx0blzZwwbNgx79+61eA9WKpV49dVXkZSUhNWrV0OhUKB3794W35vY2Fj4+vqatH1WKBTw9fXFvn37cO+99yIiIgK+vr4YM2aMoV00tQ4TXRerra3Frl27ADS1/wkICMDQoUOxceNGaLVa1NTU4IcffsDQoUPRrVs3dOzYETt27AAAbNy4EW+99ZbVx/Px8cGzzz5raCdWUFCApKQkDBkyBD179kR0dLRh3ZYtWxAXF4fu3bvb+awbqdVq1NTUGDqdffPNN/Dz8zO5CdjL0KFDsX79egCNNQg7duww3MzmzZsHnU6H4OBg3HjjjfDx8TG7vLnRo0fju+++g1arxdWrV5GUlGQYGqx5uY0bN6KmpgbV1dXYtGmT4VHd6NGjDe3bMjIycOzYMQwfPhzdunVDRkaG4Qvw9OnTqKysNGl/K8ZcTA0NDXj88ceRmpoKoLHTSmpqKgYPHmz7hSUir72P6zvNpqamGppmAI1DG3bv3h3t2rVDbm4uUlJSbL5vx8XFoWPHjti2bRsA4OjRoygqKkL//v2xbNkyQ3OJmJgYxMXFwcfHx+xyYyEhIbj77ruxZs0aAMCBAwdQWlqKgQMHmpTz9/fHihUrDIlydXU1Dh8+jD59+li8B2/duhUvvPACdDodCgsL8f333+PBBx+0+N60b98e8fHxWLVqFQDgxIkTyM3NxZ/+9Cd0794dBw4cMDQzS05ORq9evWy6pmSKTRecoHnbLqCxTVavXr3QqVMnpKWl4f3334dCocB7770HAHjyySeRk5ODsWPHwsfHB6NGjcLo0aPh4+ODDz/8EK+88gqWLl2K6Ohok1655jz11FN45ZVXcPPNN+Pjjz/GvHnz8Mknn0CpVOL555/H7bffDgBYvHgx3nzzTXz66afo0KGDxfESW6t9+/aYMmUKHnzwQXTs2BH//Oc/MWLECEyZMsVwI5BLq9Vi1KhRJstWrlyJF154AXPnzsWoUaPg6+uLadOmoX///qirq8PPP/+MhIQE+Pv7IzIyEu+88w6uu+460eVA46gLo0aNQnx8PJ588klkZmZi1KhRUCgUePbZZw09dJcsWYLrr78ejz32GEaNGoXTp0/j4Ycfho+PDx544AFDh7YXX3wRs2fPxsiRIxEQEIB///vfiIqKQlRUFGbNmoWpU6dCp9PB398f77//PsLDw/Hbb79h0aJFqK2tRVFREUaNGoWYmBh88803FmP66KOPsGDBAkP7tYULF6Jz5862voVEbUZbvI8PHjwYc+bMwT333GMyJmxiYiKee+45xMfHo1+/fnjttdcwY8YMfP311xb3d/z4cZP7s76d89KlS/H222/j008/RVBQED766CMEBwfjoYcewmuvvYaVK1fCx8cHf/7zn/HQQw/h6tWrosuBxn4I3377LaKiojBv3jy8+uqr2Lx5M0JCQvDxxx8bmjcYX8tPP/0U8+fPx8qVK6HVahEfH48JEybA19fX7D14xIgR2LFjB0aMGAGlUolZs2YZmnZYem/0ne3i4+MREhKCDz74AOHh4UhMTMSlS5cwbtw4+Pr6Wv2ZIGk+gvHzAnKqQ4cO4Y033jDp2eopzE0YQUTUlvA+TuTe2HSBiIiIiLwSE10iIiIi8kpsukBEREREXok1ukRERETklZjoEhEREZFXsvvwYipVpU3bRUQEo7TUvlPNugLPw73wPNyLu59HdHSodCEv4633bMbXeu4eI+NrHW+Iz5p7ttvU6CqVCulCHoDn4V54Hu7FW87D1WprazF8+HBs3rzZZPn+/fvx17/+FRMnTsSyZcscGoO7v5eMr/XcPUbG1zptJT63SXSJiMg6n3/+OcLDw1ssX7BgAT755BOsXbsWe/bsQUZGhguiIyJyH0x0iYg8yMWLF5GRkYFhw4aZLM/OzkZYWBhiY2Ph6+uLoUOH4sCBA64JkojITXAKYCIiD7Jw4UK8+eab2LJli8lylUqFyMhIw99RUVHIzs6W3F9ERLDNjwjdvU0z42s9d4+R8bVOW4iPiS4RkYfYsmULbrnlFnTu3LnFOrEh0X18fCT3aWtnlOjoUJs7sjkD42s9d4+R8bWON8RnTSLMRJeIyEOkpKQgOzsbKSkpKCgogL+/Pzp27Ii77roLMTExKCoqMpQtLCxEdHS0C6MlInI9JrpERB7iww8/NLz+5JNP0KlTJ9x1110AgLi4OFRVVSEnJwcdO3ZEcnIyFi9e7KpQiYjcAhNdIiIPtnnzZoSGhmLkyJGYO3cuZs2aBQAYM2YMunfv7uLoiIhci4kuEZEHeu6551osGzBgANavX++CaIiI3BOHFyMiIiIir8REl4iIiIi8EhNdIiIiIvJKLk90BUHA8YwiVNXUuzoUIiKyQoNGh4Pp+WjQ6FwdChGRRS5PdHOLqvHxxpP4ce8lV4dCRERW2LI3E//++jC27M10dShERBa5PNGta9A2/r9e4+JIiIjIGhdzKwAAl/IqXBwJEZFlLk909URmryQiIjfG+zYRuTuXJ7o+kJ6LnYiI3If+rs08l4jcncsTXSIi8iw+rJ8gIg/hNokuawaIiIiIyJ5cnuiyZoCIyEOxkS4RuTmXJ7pERERERI7gNomuwJoBIiIiIrIjt0l0iYjIM/hca3PG6gkicndMdImIyCZMdInI3SmlCmzYsAFbt241/J2eno5jx47ZLQB2RiMiIiIiR5BMdB955BE88sgjAIDDhw9j+/btDg+KiIg8zzur0xATEYS/P9DX1aEQEQGQ2XRh2bJlmD59ukMCYV80IiIP0+y+nZFbjn3pBa6JhYhIhGSNrt7JkycRGxuL6Ohoi+UiIoKhVCqsDqC8Tmt4HR0davV27ozn4V54Hu7FW86jLdM3ORPYSpeI3JzVie7GjRsxfvx4yXKlpTWyAii7Vl6AAJWqUta27ig6OpTn4UZ4Hu7F3c+DSbh12LWCiDyF1U0XDh06hFtvvdWRsRARERER2Y1ViW5hYSHatWsHf39/R8dDRESegi0XiMjNWZXoqlQqREZGOjYS3jCJiDyDFeNCVqkbWiz74H8nsPyHdEdEREQkyqpEt1+/fvjyyy8dEgDH0SUi8lxFZWpk5lWYLEs9exX/+mgPdqZmmyw/lVmMw2euOjM8Imrj3GZmNFboEhF5FgHAK8sPYMF/U02WHz5TCADYfTzPBVERETVxm0SXiIg8g/5BHMc/JyJ3x0SXiIjkYZMzIvIQbpPoCqwaICLyWHLv4eeulKK8qs5B0RARNXJ5ouvD3mhERB5PTppbWlmHhd8dw6srDiAjtxzvfpvGpJeIHMLqmdEcjhW6REQWqdVqzJ49G8XFxairq8P06dNx3333GdY//PDDCA1tmt1t8eLFiImJsXscWfn62e2Mbtwi93BBECAIAqprNQgJ8jMsr7429Fh9gw4f/O841HVabD90BYnDe0Gr00Hh6/I6GCLyEi5PdFmfS0RkneTkZPTr1w9Tp05Fbm4unnnmGZNEFwBWr17t8Dj0Y+QKJnmu0R9GT+rW/5aBHUey8eZTdxitb3qpM9ps5Y9/4MDpAnz24hAE+rv864mIvADvJEREHmLMmDGG1/n5+S1qa6urq50aT1ZBpeG1uSa6O440jqX7R1aJYZm5Co4DpwsAAEVltYi7LsQuMRJR2+Y2iS5bLhARWScxMREFBQVYvny5yfKysjLMmjULubm5GDRoEGbOnOm0fhC2digWi04AcCarBFHhQYgOD2pVXETUtrk+0WXbBSIiWdatW4czZ87g5ZdfxtatWw3J7AsvvIBx48YhICAA06dPx44dO5CQkGBxXxERwVAqFa2OKTKyqQY2IKDxq0WpbGpr265dgFHZdobX+jw8KMjfsCww2B9vrzoMAPhxyUM2xxQdHSpdyIXcPT7A/WNkfK3TFuJzfaJ7DYcXIyKyLD09HR06dEBsbCxuuukmaLValJSUoEOHDgCASZMmGcoOGzYM586dk0x0S0tr7BJbRlax4XVFZeMIChqNzrCsymhUBeNj6tvoqtX1hmVXVVWG1ypVU/MIOaKjQ23e1hncPT7A/WNkfK3jDfFZkwi7vGsrK3SJiKyTmpqKVatWAQCKiopQU1ODiIgIAEBJSQmmTp2KhobGjmJHjhxBr169nBbb2l8vGF6fyiy2UNKkr5qZpgus+CAi+3CbGl0iIrIsMTERc+bMwaRJk1BbW4u33noLW7ZsQWhoKEaOHIlBgwZh4sSJ8Pf3R9++fSVrc+1JP2SYOUxdicgV3CbR5U2QiMiywMBALFmyxOz6KVOmYMqUKU6MqIlGJ3EXl9M8jV8IRGQnLm+6AM6MRkTk8XQSia7xWqmRIJjnEpG9uD7R1eOdjYjIY0klulL3ePZHJiJHcHmiy/pcIiLPJ9l0wQyxyl0mvURkLy5PdImIyPNpNFqL602aLhgvZ1JLRA7kNoku73VERJ6ruKLO4nrjsdKl7/f8RiAi+3B5osu+aEREbcueE3mG12y6QESO5PJEV48zoxEReRdzt/Xth65Y3s4BsRBR2+Q2iS4REXkX45EYtu7LEi2jrmvZtpcVH0RkL0x0iYjIIa6WqW3ajnkuEdkLE10iInI5wajBAhNdIrIXlye6UjPkEBFR28KmC0RkLy5PdPV4XyMiars0Wn4JEJH9uTzRZX0uERGVVzWNw6tjzQcR2YnLE10iIiJj57LLRJdfyCnD2l0XmAgTkdWUrg5Aj22yiIjartLKphrd5KO5omXe/fYoAOC23lHo0yXCKXERkWdzfY0u2y4QEbV5WQWVost/TcsxSYIBtuclIuu5PtElIiIyY83O81i6/rirwyAiD2VVort161aMGzcOEyZMwO7du+0aACt0iYjIktyiatMF/OIgIitJJrqlpaVYtmwZvvvuOyxfvhy7du1yRlxERETi2HKBiKwk2RntwIEDGDx4MEJCQhASEoL58+c7JBD2RSMiIiIie5Ks0c3JyYEgCJg5cyYmTZqEAwcO2DcCzoxGRERERA5g1fBihYWF+PTTT5GXl4cnn3wSycnJZqfujYgIhlKpsDoArW9jri1AQHR0qNXbuTOeh3vhebgXbzkPciHWjxCRlSQT3Q4dOuDWW2+FUqlEly5d0K5dO5SUlKBDhw6i5UtLa2QFUFKmNrxWqcSHl/Ek0dGhPA83wvNwL+5+HkzCiYi8i2TThXvuuQcHDx6ETqdDSUkJampqEBHBgbqJiMj1GjRaLNt8Cmcvl7o6FCJyQ5I1ujExMUhISMBTTz0FtVqNN954A76+9h9+l53RiIhIriNnryLtvApp51VYNTve1eEQkZuxqo1uYmIiEhMTHRIAm1oREZGttJwljYgs4MxoRETksZjmEpElTHSJiMijmHsSePpSCarUDU6NhYjcm+sTXbZdICIiGczV4i5ZfxwLvzvq1FiIyL25PtG9RmBvNCIiaqVcVbWrQyAiN2JVZzRH8mGVLhGRVdRqNWbPno3i4mLU1dVh+vTpuO+++wzr9+/fj6VLl0KhUGDIkCGYMWOGC6N1rMsFlYjtEOzqMIjIzbk80SUiIuskJyejX79+mDp1KnJzc/HMM8+YJLoLFizAV199hZiYGEyaNAkJCQno2bOnCyN2jPTMYiQdzka/GyJxe+9oV4dDRG6MiS4RkYcYM2aM4XV+fj5iYmIMf2dnZyMsLAyxsbEAgKFDh+LAgQNekej6NptyPulwNgAgPbOEiS4RWcREl4jIwyQmJqKgoADLly83LFOpVIiMjDT8HRUVhezsbMl9RUQEQ6lU2CWuWZNuwxIHdAbz9fUxOz1zaGhgi2X6su4+pbO7xwe4f4yMr3XaQnxMdImIPMy6detw5swZvPzyy9i6dSt8fHxEO/T6+Ej3gSgtrbFbXOFBjvlK8fUBVKpK0XUVlbUtlqlUlYiODjW7jTtw9/gA94+R8bWON8RnTSLsPqMuuDoAIiI3l56ejvz8fADATTfdBK1Wi5KSEgCN07UXFRUZyhYWFiI62rmP9TtFh4gu/9voG1u1Xx2/IIjIRi5PdK2ocCAiIgCpqalYtWoVAKCoqAg1NTWIiIgAAMTFxaGqqgo5OTnQaDRITk7G3Xff7fQY3356ALrENCW8IUF+GNg3xsIW0iwOP8kkmIgscHmiS0RE1klMTERJSQkmTZqEf/zjH3jrrbewZcsW7Ny5EwAwd+5czJo1C48//jjGjBmD7t27OySOQdcS16kP9G2xrmvHUMz920DD3w/e3Q3+yqavmtcn3447+siradaxSpeIbMQ2ukREHiIwMBBLliwxu37AgAFYv369w+P4x4N98a/E21BXU4ebb4jEzI/3mi0rCE1thf2VvugZF4YDp/1lHY9pLhHZiokuERHJ4uPjg/bt/KGqqUNokJ9omdt7RyPtvApdrzVjWPbCEPj6XmurJrPJWqeodmbXMQkmIkvcJ9Hl3YqIyOOYG9nhH+NuRkFO9DWxAAAgAElEQVRJDTpf15joBgU0fd3c0ec6JB/NxSPDeqBTdAg+3HDC4jGUSl+cyCiyWIaISIz7JLpEROQ1/JS+hiS3uZu6RmDZC0NMkl9LGjQ6fLTxpPhKSx3ViKjNY2c0IiJyOmuTXADQaHVm1zHNJSJLWKNLREStEhSgQNcYx82wZHF4MSIiC5joEhFRq3wyc4jc/mWS7ugTjdRzKgCWWycwByYiS9h0gYiIWsXXx8eq6YatNXpQF/S7oYPhb9boEpGt3KZGl/cxIqK27ZXHbkVUWCCiwoPwa1qOYXlxRZ0LoyIiT+byGl171gIQEZHnimgfgKjwIABAfYPWxdEQkTdweaJLREQEwGQIhQE3Xue6OIjIazDRJSIit2Dcgi0qPAhfvXqf5DY6Hdu9EZF5THSJiMgtNO90Zk3TtrNXSh0VDhF5AbdJdAUO+01EREREduQ2iS4REbVtCoX8ryR/P4UDIiEib+E2w4sREVHb9Nrk23DuShmuuzbighx+NiTHRNR2MNElIiKX6hUXjl5x4TZt6+vLISqJyDz+FCYiIo/FWdOIyBImukRE5LGY5xKRJe6T6PJmRUREMrFGl4gskWyjm56ejunTp6Nr164AgN69e+PNN9+0WwCcAZiIiGzF+SKIyBLJRLempgYJCQmYM2eOM+IhIiKSgZkuEZkn2XShurraGXEQERHJxpYLRGSJVTW6aWlpmDJlCtRqNZ577jnceeedZstHRARDqbR+AG9FgB8A4ODpArz8xB1Wb+fOoqNDXR2CXfA83AvPg6glHTNdIrJAMtG98cYbMWPGDAwfPhyXLl3C3/72N+zYsQP+/v6i5UtLa2QFUFJRCwCob9BCpaqUta07io4O5Xm4EZ6He3H382ASTkTkXSQT3R49eqBHjx4AgO7duyMqKgqFhYXo3Lmzw4MjIiKyhJ3RiMgSyTa6GzduxH//+18AgEqlQnFxMWJiYhweGBERkRQOL0ZElkjW6I4cORIvvfQSkpKSUF9fj7lz55pttmAL3qOIiMhm/A4hIgskE92wsDCsXLnSGbEQERHJws5oRGSJ+8yMRkRE1ExUWKDsbWpqGxwQCRF5IskaXSIici+LFi1CWloaNBoNpk2bhvvvv9+w7uGHH0ZoaNPoEYsXL/bqfhViFboLvzuGz14d7vxgiMjtMNElIvIgBw8exIULF7B+/XqUlpZi/PjxJokuAKxevdpF0TmfWNOF7KtVLoiEiNwRE10iIg8yYMAA9O/fH0BjHwq1Wg2tVguFonGiHs5mSUTUxOWJrsAus0REVlMoFAgODgYAbNiwAUOGDDEkuQBQVlaGWbNmITc3F4MGDcLMmTPh4+Njdn9yZ7M05owJNnx9zccOAEo/87Hr41ux+STSzl7FiteGW7wWzuYJE5S4e4yMr3XaQnwuT3SJiEi+Xbt2YePGjVi1apXJ8hdeeAHjxo1DQEAApk+fjh07diAhIcHsfuTOZqnnrFnutFrLlSHl12bXFKOP76d9lwAABYUVUCrcow+2u88SCLh/jIyvdbwhPmsSYff4F09ERFbbs2cPli9fjpUrV5p0PAOASZMmISQkBH5+fhg2bBjOnTvnoiid42JehdVl3agyl4ichIkuEZEHqaysxKJFi7BixQqEh4ebrCspKcHUqVPR0NA4vNaRI0fQq1cvV4RpN/ZMTjnkLlHbw6YLREQeZNu2bSgtLcXMmTMNywYNGoQ+ffpg5MiRGDRoECZOnAh/f3/07dvXYrOFtqqiuh5rdp7Hw/d2R2yHdq4Oh4gciIkuEZEHmThxIiZOnGh2/ZQpUzBlyhQnRuQcMZHBKCyxrT2xnr5Gd/PvmThy9ioKS2ow95mBdoiOiNyV65su8FESERFJ6HF9ezvspfELp65BCwCovfZ/IvJerk90iYiInEBfoytce8G+aUTej4kuERF5HVWpGpcLTIcm0j9A1Ce87jSmLhE5BhNdIiLyCJ2irO849syCHZj3nyOi6ww1usxzibweE10iIvIIrU5MBZP/sUaXqA1goktERB6htYmpfsr5pqYLrY2IiNydy4cX46ALRERkjdbmpdVqDb7//RJKrk0b7MPuaERez+WJLhERkRRBsK1iRDCaDm3z75k4cLrA8DdrdIm8n8ubLvA+Q0RE1hBsmMPXeIvKmnqTdfz+IfJ+Lk902XSBiIisYUOea/Il03xzdkYj8n4uT3SJiIisMfSW61u3g2aZMvNcIu/HRJeIiDzCiDs6y95GsPDckIkukfdzeaLLpgtEROQoApsuELVpLk90iYiInKF5G1/muUTez+WJLu8zRETkDM1HbeA4ukTez+WJLpsuEBGRo1gaqYE1ukTez+WJLhERkeM0Zbotmy4w0yXydkx0iYjIA9j2/M9iZzTbgyEiD8FEl4iI3JZdK105ji5Rm8NEl4iIvJZg5jXQ1HQhv7gahaU1TouJiJyHiS4REbmt68KDAADhIQG27cCKzmhzVh7CaysO2rZ/InJrViW6tbW1GD58ODZv3mz/CGyavJyIiNqCKQ/0xUP3dMeDd3ezaXvjmdEu5JSbrGNnNCLvZ1Wi+/nnnyM8PNzRsRAREZkICwnAQ/d0R6C/EgBw580xiO0QbPX2FocXa21wROT2JBPdixcvIiMjA8OGDXNCOEREROb948GbMeeJO+yyL9boEnk/yUR34cKFmD17tsMCaBfk57B9ExGR97FXfso8l8j7KS2t3LJlC2655RZ07tzZ6h1GRARDqVRYXT7a6HVUVIhX/MKOjg51dQh2wfNwLzwPIvnYdIGobbOY6KakpCA7OxspKSkoKCiAv78/OnbsiLvuusvsNqWtGKJFpar0+EQ3OjoUKlWlq8NoNZ6He+F5OAeTcG9kPtNt/n0jCILHfwcRkSmLie6HH35oeP3JJ5+gU6dOFpPc1hIg/gubNx8iIrJFUXmt2XXNv1b+vjAZw2+Pw+Mjezs4KiJyFrcfRzfleC7+vjAZVzmYNxERQV7b2vW/ZVjYT8sd/ZqWY0tIROSmLNboGnvuueccGUcjkSrd//5yDgBw5OxVjB3czfExEBG5uUWLFiEtLQ0ajQbTpk3D/fffb1i3f/9+LF26FAqFAkOGDMGMGTNcGKnrNWh0ZtfxOSGR93P7Gl0iImpy8OBBXLhwAevXr8eXX36Jd955x2T9ggUL8Mknn2Dt2rXYs2cPMjLM12h6Kh+jFPXtpwdYLJuRW252HVvEEXk/q2t0nUEw20qXiIgAYMCAAejfvz8AICwsDGq1GlqtFgqFAtnZ2QgLC0NsbCwAYOjQoThw4AB69uzpypAdqmtH2zsQsu8HkfdjjS4RkQdRKBQIDm6cGWzDhg0YMmQIFIrGIR1VKhUiIyMNZaOioqBSqVwSp0NxHF0ispJb1ej+fjwP990W5+owiIjc3q5du7Bx40asWrXKsEwQGTRWqtZS7tjnxlw1HFttvcYkhj/1iMKpi0Wy9xMY6Cd6Ds46L08Yzs7dY2R8rdMW4nOrRHf1jvNMdImIJOzZswfLly/Hl19+idDQpi+CmJgYFBU1JXyFhYWIjo4W24WBrWOfu3JM5PoGreG1SlWJOqPEV47fj+Vi8oheLZY747zcfUxpwP1jZHyt4w3xWZMIs+kCEZEHqaysxKJFi7BixQqEh4ebrIuLi0NVVRVycnKg0WiQnJyMu+++20WROk7zSmqxmmxr7TuV38poiMiduVWNLhERWbZt2zaUlpZi5syZhmWDBg1Cnz59MHLkSMydOxezZs0CAIwZMwbdu3d3VahOY3uaC5RW1tktDiJyP0x0iYg8yMSJEzFx4kSz6wcMGID169c7MSJXMK3S/evQHlj6v+OobzA/Zq45NbUtmz1U1tQjNNjf5uiIyH24ZdOFi3nluFLovu1GiIjIffTuHI7ls4bZtO0ukZnQdhzJbmVEROQu3DLR/fd/0zD36yNm1+cVVeNiXjl0rWiXRUREnslZw4LVGXV6IyLP5JFNF9748lDT6yfvwA3Xt3dhNERE5G1+OXQF/0vOwOzHb0PvzuHSGxCRW3LLGl09S3OU6+1LZ49ZIiKyrx/3XwIApJ3zwgk3iNoQt0t0SypqDa+nLU5xXSBERNTmCa0a04GIXM3tEt2XPtsvuvxygXjnNM7gSETUtjinjS6/XYi8gce00U09p0J+cTUy8yparNt+6DLq6rVQldXi6dE3QuHrg5o6DUKC/FwQKREROZKPg5NQZ3V2IyLH85hEFwDW7DyPP7JKTZbpBGBD8kXD3/26R2L3iTyczy7Dx8/fy2SXiIhk8kHrpqEgInfhdk0XLGme5IrRaHU4n10GADh3pczRIRERkbM5scbV0bXHrrT94GUs/yHd1WEQOZRHJbqiLIylu+z7U6isqXdiMERE5E28uTPahpSLOHzmqqvDIHIot0h0w0Jsn2qx+S0o7bzpUDCX8jnDGhGRN3F0HauPyFF0Ou9NeIm8mVskurGRwTZvu/t4nsnfJy8Wm/ydX1xt876JiMh9OaPTmCAAS/93HFMWJUNdp3H8AYnIrtyiM5qPA+9W63/LwJ97RqGjUTKtEwSUVdYhsn2gw45LRESO4ePjg/em3YngQMd0Njb+Svo1LcfwOldVjbjr2sHfTwFfDs1A5BHcoka3W2yoQ/d/tVRt8veanefx0mf7sXbXBby/9phVM7AREZH7uC4i2Omj6lSq6zF96e94Z3WaU49LRLZzi0T34Xu6O3T/Pj6AcK3T2oWcMiQfzQUA7EzNxpnLpUi/VGxpcyIiIpRV1gGA6HjuROSe3CLR9VMq0C22vcP2vzrpHKYv/R0arQ7vfnu0xXpvHj6GiIjkMfeUr7ZB6+RIiKi13CLRBYCPZw1z2L6LymtR16BFZU2Dw45BRETeYfuhK6LVHxx5gcjzuE2i68gOaXq8SRERERG1HW6T6DrD4TOFosu9eUBwIiKyDwvzExGRm2pTie6GlIuuDoGIiDyUM/JcnSDgix9P49gFlXRhOxGYwZMXa1OJLhERkc2ckBBeLqjEwdOF+GTTKZu2z8gpx/rfLjB59XANGh2ulta4OgyvwESXiIioGbFuI+ZSx/oGLQpK7JOUaEX6kuRcrcLyH9JRUyvdofqdb9OQdDgbF3NNh0D7dsc5vLem5ahDgO011emZxXjps30oKlNLF/YggiBg36l8lF4bTk6vsLQG57PLTJbVNWix80g2qtTS7015dT12HL7SYlSP5KM5uJBjut/F645h9oqDLZJdra7liCDns8uw52Rei+ViP3byi6tRKPJZFStbU6sRPZ7YqCTqOo3b/rhyq0R34E3XuToEIiIiWd5fewyvf9EyKbGJSK6wZP1xHD5zFTuOZFu9mwataTLy29HcFklaay3bko6SijrsMpo9zhucuVyKr34+gwX/TTVZ/tqKgy1+LPy0Pwtrf72Ar7edMVleVlVnGHdZ7/PvT2Hdbxkms+2p6zRYveN8i6FPL+SUAwAKSpp+RJRU1GLqohRs2m3aDPO9NUfx9baz0Bklmpl5Ffj7wmSknr1qUnbOykN47YuDJsv2p+fj7wuTkVXQ9ONIo9Xh2Q9/x9yvj5iU/eaXs5i2OAVlVU3ndrVMjRkf/I6vt581KXu5oBJp50yb4BSW1uD1Lw62SOwdSTLRVavVeP755zF58mQ88sgjSE5Odlgw/xh3M9548g6H7Z+IiMgaYpVTxsu0Op3hy/7itQkkCktbX7Mp1jm6ulYDwPz4vmKcMjq8e1bgtZq+Jrd5ja4Y1bXa7Lxi0x85L366D0/M/cVkWbaqGkBjwqqn0Vp+T42fLJy70pgc/nzgsnhZo9e70hp/FG1IybC4fwBY92tjmT0n8w3L6q+NGZ17LWa93ccba44vF1QalmXmNible422B4B5/zmCZd+fMhnx6sd9WSgoqcHKH/+QjMteJBPd5ORk9OvXD99++y0+/PBDvPfee44LxscHXWJCHLZ/c1LPqvDut2lo0HAwcCIiEm9CYPxodsm643jx031WJUNyWHz666jstZUJqxNGB3WYugYt8ourpQsaEXtEL+sSyChsXFRqhChB5A85E2KZHkuirFFhOR8fV7RuUEoVGDNmjOF1fn4+YmJiHBqQrwv+xRw4XQAAOH2pFLf0inL68YmIyL2ItU00/pI+e612zbi5guO+vby06tQNLPruGC7lV+DdaXciJiJY9vbyEjeRH0+yjyiTwz6UnvPrRjLR1UtMTERBQQGWL1/uyHjg6+s5F4+IiLyTRmtdCmLNd5ZGq8OKH05j2G2dcHO3yBbrSypq8eVPfyBxeC+L++F09darqdUgOFA6xbmU39jsRFWqNiS6cpJXfVFr6ugEsVpWOceyIS7r9iv29ELODmSUdcGPNqsT3XXr1uHMmTN4+eWXsXXrVrMzmUVEBEOpVNgUTHR0qE3b2UtYWJBdYnD1edgLz8O98DyIXEvsK9r4u9DcV/jxC0VIO69C2nkVVs2Ob7F+0+5MnL1Shs9/OI2nR/VpsV7fjGL38Vz8dVgPq2KV83C08ZG4/CTaHSZbulJYCYWvDzpFNzV7/HHfJXy/5xJefuxW3NQ1wrodybpeblqfKRKYnDhlNXNo5QVw5sN7yUQ3PT0dHTp0QGxsLG666SZotVqUlJSgQ4cOouVLbex1Gh0dCpWqUrqgA5WXq1sdgzuchz3wPNwLz8M5mISTJeaGYJIi1t5XbL/mhmfSL6624lhOZUM7UHvTjwpg/ANi+6ErABp/YFid6BqRlcC3stGp5NY2XlpnDvUl3Xa4KQN3xU8jyc5oqampWLVqFQCgqKgINTU1iIiQ/8EhIiJyhqkP9HXIfsVyhw83nJDeTsbXuys667jp8Kc2k9OcQE9Wsi5yvcw95RY9loxDpWeWNB1W4n0S/ZxZcTDDfp3xe+XasVRltZbL2ZFkopuYmIiSkhJMmjQJ//jHP/DWW2/B19exw++2s6JdTXOhwX52j+Ps5VKUV9m3Ry0RUWudP38eI0aMwLffftti3cMPP4wnnnjC8F9hYaELInQxB31h21xLJmOzNbvO23YMK4mdQ32DDj/uz8LS/x23S03gul8v4Oh5+05hrBMEZOSWSw7HZY4gCPjq5z+wPz1fdP3+9AKjwjL2K7HeOIfQl20+tqye8bBjenLGTj59qbTFMrHJIczJVVWJLq+oqW+xLPloruG11EemrLLl9s4kmbEGBgZiyZIl+O6777B582bEx7dsX2Rvj97XEwAQFKDEcxP+hHF3d8MLj/4ZwQFKLJ5+V4uJJb569T589K978cnMezH45o52iaGkohaL1h7D7GYDKxMRuVJNTQ3mz5+PwYMHmy2zevVqw3+OHinHnfSOCwMAXN+hncnyt58eYJf9OyHPNRm3VBAEuz+CFtvd/5Iz8P3vmSa1h7IY/bCoqKnHjiPZ+HSz6RTG2w9exvSlu6Gus635RfLRXLyzOq3FZAmiRM6xSt2AfacK8OVPZ1quRNPoS2Y2N1HXYDQU6bXCeUXiQ5T9erRpcoi6+sbtikUSWgAoKrdcyyn1ZGBDsvSYuXqnLzW91zXX3hP9SCKA6Q+ifJFzO55RZPWxVhlNpuGKhwfyq06d4N4/X4+7+8cahhq7tXc0AODTF4YAAJ4efSPu7NsR1bUNCA8NMDwyaBfoh6kP9jX5wNqqsqZxOj/9B5OIyB34+/tj5cqVWLlypej66mp5Y4J6kxcm3oKC4hp07djU1rpdoBIKhX2qeHU2Jp22Jqv/75tUBChte4Jq7lG6WMcz4xmxWtvRSjDTHnlDSmOCeim/An1FRp5osR9BMDmHc9dmdTt5sRgT4y2PTqFnMtarHTOstb9ewDNjbrKqrORx7RiYnD39cbkEwwZ2tduxLbH3WNNyuWWiC1geTzfQX2lxvNsAP4XpLy4iIi+hVCqhVJq/dZeVlWHWrFnIzc3FoEGDMHPmTIvtBz15pBwxcdeHAwC+nDMSvx/LwV/u64Xsq/bpABkU5G9xffv2QVBrBVSpG9C3e1OH7ZCQpkfKxtdM/zogoLHpnUJhmtQazz4ltr0l4eHBomU7dAiFX7Pk2fi40VGhJkOmWXO84CB/QzllQFMzQrFtw8PE4zK2ZE0aTlxQ4b9zRxmWBQQ0fuaVSl/R7Y2X6T/uQUZx+QXWiZYV20dISKDFsjmqasNy/wClxbLBwf4W41UYXS9zIz/pl4VKxOXr69MUl79EXNc+y83XGbY3anIRZuazZIgrVPzzradQNMUVIBGXuWO0htsmuq2x9Nm7UV3bgFc+PwAAGH9vd3SOCcXHG0+6ODIiIsd64YUXMG7cOAQEBGD69OnYsWMHEhISzJb35JFyLImJDsWw/rEoLq5CSYl9armrayzXTJWXqzHvy8bmbsajAFQYParWXzPj61dX1/gEUWtF+1Pja55fXI2wdv4IDmzZR6WsrAYqVcvEXKWqbJHoNhhVDKlUlYZEV+o91tcgqtX1hnJlRgmS2Lbl5TWSn5uUa4/7jcvV1TZeI41GZ3INxY6lryQ1jqu8ul60rDH98qqqlu+XsYYGrWF5vVFTDLGyNTX1osvFrlfje2a+bEWl5biMr02tRFzV19rdNl9nOJZRu9yyUstxVcqKq8FiWWPW3GOsSYQd26vMRYIClIgKC8LN3Rsfj/TpEoFbekbhoXu6uzgyIiLHmjRpEkJCQuDn54dhw4bh3Llzrg7J5bRWTv4gReops7mKc1lTt1pJXafBnJWH8OryAzK3bOXkAHbYTk+j1WF10jnDpA3WsGZ0g9aO7yvV1EQw89q2Y4m/tmlf9iwsiL4ULyo1GoSLR/XwykRX79nxf8KcJ25H786Nj7KY6BKRNyspKcHUqVPR0NBYa3LkyBH06mVde0ZvJjWOrbWcMeqCtfSduuSOrSt2KUwTNwdnJUaJ6tHzKiQfy8X8b1IlN7MliTOdgUzGEG9S6+Xsy4mzmcnJmmX9+JKxL9FZ1kzWW9yVQ3hl0wW9AH8FenQKE1339tMDMO8/R5wcERFR66Snp2PhwoXIzc2FUqlEUlIS4uPjERcXh5EjR2LQoEGYOHEi/P390bdvX4vNFtoKW4ekak5OzZVOEAx9TVxRoWW24lM0P3JNlZuszt6G5FWa/ofNL4ev4NH4ni3WN2h0LZpv2Eq69tcx11as06CspNpBb7kgtPzsubpG16sTXbmSj+WiT5dwBAXwshCRe+rXrx9Wr15tdv2UKVMwZcoUJ0bk/qxp+2qNAhljkmq1AnyV1xJdV3/TGxFLvHTWVwS22BsAyKk4be34F/nF0u+BWA2+8ZLLBZXoGSdeCdaisAhZDwgkfxzZePFFMl2TmlPr92Rm/zL2ZdLMoWVgJqfY2rhs4NVNF8SMHdwVSoUvOnYIbrHuVGYx5n3NWl4iIm8S2T5QupAVzlxuOSC/OTqjbMjRyZ+Uq2Vqi7G4KhG35ajmhniTGvpNaJGMWUeyiYDU9laXlFdW7HxNFrnot5X4pXHtD702l+j+ZWgPrHhpKAL8xIfTuVqmFp2dhIiIPFNMZDDefnoAXnj0z047plbXVItsz6/5o+dV+Mf7KVbVbOqdNUrQ3SnRlSInrkN/WD8DoPRUupbL2rMDmbnjiq6XkcxLHkvONZDal8R+5bT3dYQ2l+gC0r021/16wUmREBGRM3TtGGq2gsMRtLa3B7Bo1c9noNHqkHws12I5H7P1xJZrAm0J1fyxLJPVqUtifYGMxF/6YMaP7S13rpLel5zjWr9aquZUOjmVUQMu60MhUdPsAm0y0ZWisdNQNERE1DYZJ7pyasSsJZl8+DTOSJV2TmVSVnTUBQd95RWLTGlrxehgBuezy6QLXdPqEQvMlrVumT20tkmFPdsO20r888WmC0RERA7n+C9co4RSRhtd244g7e1Vh7Hs+1O4UlglsU/bGndKNYMwnqRB/LiWrfstQ3S/tuzN1tpj6ZE2Wjfqgqx2tTI6dckZC1hye1kd6iwfi53RnGzYrZ1El2fmVzh+LEEiIvJaGpNE1zXfJ1XqxvGUjWffkuzEZMaxCyqkXyoWXWd2ogynzoAgY7ey9it2vVr3Y8D6I8krLOt6O7FWmk0XXKi3meFFKqrrcfxCkZOjISIiR3L8F25TxqfV6pB69irKq+tdXm0iVWtonPwKQmPCVFljWhv7yaZTWLr+hLzjiiwz6SMj2SbVNQml6XjIlrdv7XsrZzIF49W2/mARO67oejm1x1IxuHh8sTad6PbpEmF23dZ9WYbXp7NKnBANERE5kjO/Y89eLsVnW9Lx7uo0l9RoyZgvokV83+48j+c/3ouLOda1kTU38UNra3Tt2uRDTnsEkw0l9iXnuJL7l2wjYPWu5CTNUlp7vmy64AGSDl9BXYN1M7ikXyzClcJKB0dERERy9ewUhm4dQzFphKOmRW76Gi+6Nkzl1TK165/dGhGdorXZ5ADJRxtHdDhtpqmCnr7D3a60HDPHkojF8mpZo0E4bKpdB6dmNuff1vxisfbAoqtlpKcmFbZsuuCR0jNL8M8lu9GgkU52X/tsH+Zy0gkiIrfjp/TFW08PwIg7Ojv8WK6eDcqYSSIro4ZSqbA+RVCVqbFm53mo6zSixzUTmMRe7Xfl5MwaJnW9pCanMHdc8fXir6XLiiSUVkdlRVk5PzKMX0u0HXZFe/U2PdetQiFv7L8qtQYRoabjMFbU1GP/qQLE39YJ/k4co5GIiNxLdW1TkicnUbCF5D6tbwprtte8wtf678hPNp1CjqoKNcbXoJXs2ea0WeFWxWDXCSNs/EXk6GHP7PmRZY2uC7UP9pdVXqz5wsof/8D/kjOw/dAVe4VFREQeKPXsVcNrqVq/2joNdh7JRnVtg8yjtLbdq+VHyxl55YbXCl/rUwT9yA7G59PqpgvGr+24Mzm1rK1vpGv9allDkYmul1FzKqe9r+U9mexLtJOc1PYO1qYTXble/+Igkg6bJrR5RdUAgGJOG0xE1KaZq+kTS2DWJJ3F2qzgZ68AACAASURBVF8v4Lud5x0Si7nZyqQ6C207cNnwWinzqael/RrikrFLe86cZmthqVEXWn0oG7NAqVEXWt0oxNa2N6JlXZvqtvlEV+6UkOt/yzBpg2Tg6p8sRETkNqRq57LyKwBc66zWtJHVSivrpAtdYzJ8mMS4sMZPLuXU6IqRnLRARqVjaxNGeTWUEqtl1A7bNyu2XFbW5vasaZaIwa5NPWzQ5hPdcfd0k73Nr2Z6mBIRUdtlrhOTWO2qfkguf2VTZYucdqaX5YzuI5FoGC+rN0p0fR1Ro2t24DPrtjdfVkbtr4wkT7zmVCqBt60mWlYnOcm9Wd5e1i8DCaaJrOWaZldo84mu3BpdQLytLnzAYcWIiNowwewfLem/R/yVTV/DzkgIxGvcmpbWN+gMr5UyOqOJHkvkhM5cKZWzA7sVlWx3a92GVq2X1+5W/MeRZFg2JJSmbZ6tL9vqTnJsuuBaPnIaDEngsGJERAQAOokvd0ONrlFliz2HXjI3AZnYMYzbodYZDaOpkDG8WNP+jf9ouf773zNt25foetsyMOlRzSzXnEo2qbCxeatkjayZGKxdLycu6dpj60nV+DoaE10b8lw5Y+gREVHbI/U1oR+X/cjZq4Yv/+IK69vd2hyMaNOFpoVabdNrOcOLiX2XykmmRNe3chQCc7HIa8sqUnMqmZBan1HKar8q2URAoi227Rm41dh0wR3Z8AYYv2n6DgEajU60bINGi082ncSZyzIe1xARkccx7qhs7jtBz6QdqFjXfnPb2fKdZea1FLljzTfu37ZH8aL7suOjeDkXQbLmVKKAXUc/kENOUi3jR4S8Yc0sB+aKnLfNJ7q2XPRfDl2BqkyN8up6w7KDfxSKlj1y9iqOXSjC+2uP2RghERHZ24zx/ey+zws5TWPQ7j2Vb7GsoHPel7/Uo2O7PqWU8ZhaRgsCySlv5Y0M0LqaYvsmp9Z/DuQ0XWhthm1rm2bW6Loh444Acny38zzKq6QfM2ll/FInIiLnuL3PdS49vqzaSHseV6rtZiuDsbX2WHq/Yo/iZWxv8wxkUk0ExLYx94dIWYlj2RqX+Dbix5UqLG8oMvfT5hPd4ADbZkHWCgI7nxEReZERd8Q57ViO7qBjrv9Jg0aHz74/ZdKcztzRGzQ67D2ZL29aX1mzc0mtllHzamN7XcmyEj8MWn0EG4ORSrDFdysjkba6pGlhse1c3a/JtizPiwQH2nYJqtXWTdsoZ8xAIiJyIQd9H5eJPv2zX1tWKcYJZ9p5FVLPNf4nZXNyBk5mFOFUZrH1xzL7h3SMzUdBkk5kZTz2l9Ppq1lczelk7MuebXRl5fVSbYcd1HhY9MeNmX2JveeO0OZrdHt3Drdpu2q1jF+4RETUZu04kt1imaNrdK+WqkWXa7USneSMQsm52jg2/KVrs7jJZcf+YeLb29jBrPU1m87syCW9nZ5Uzamca2BrAi45rrBtLUhapc0nurb+mjCZtpGIiEgGe37h68fkNbb8h9Pix5W1ZxtGXZBVa2i5mYNO6lG9zNisjUuQqCmWOzmFTidYNbJGq5tqmPlMGa6tjM+crePo2txu2oGsem6/aNEipKWlQaPRYNq0abj//vsdHRcREZFD+St9UW80DJgzWxLaOgyXWNEdR67gwbu7m99GRu2xLYmd+ePK6VwlHkyVusFsU0GpcWOlD2BNXAJ2HMlG/x4dJGMwCsbksC8u29eiSINGh8y8cgT6K0W3k4zLymX6GFrU6bWy9tjWsvYcfs5akonuwYMHceHCBaxfvx6lpaUYP348E10ZnND8hIiIbPDa5Nsx7z+u6VQsZ0xTKTV1lpvSyXs83roGBc0TnS17MtEttr30kczki89/vAeCANzUNcLiDuzaTMKowB9ZpVj36wVsTMmwGGvj8sY2p83fzwqjoUj11uw8j99P5GH4bU0dIO1ZG9ry82Ual11zTDmfLxvbSreGZKI7YMAA9O/fHwAQFhYGtVoNrVYLhUIhsSUBznsjiYhInq4dQzExvifW/9aYxDizXsLWtpliTGoFJUi24zRZrb8itgWortNg676sFss1Wp1hsqWm44p1nhIM8YjPUGbujyaZeRVYu+s8xt3TVOMtp4ay6lptskZr/H6ZabkrNJ6zuemXjZ3IKAIAXMwrly5s5lhyyzav2d99NAcVFeLNMO3Zec9CaRllbSf5r0OhUCA4OBgAsGHDBgwZMsRikhsREQyl0rYkODo61Kbt3JH+XEJDS1ss8xSeFq85PA/34i3nQd6hvqFl+1ZHysyrQFG52iR5kDMzmpgAP8vfuVI1p+bKWlrWnCElNiqsNXOwpeuP4+yVMgy7tZPl45o5cHVtAzbtzsRfhvc2WV5T24DmP1c+3ngCFTUN+FEk4W5uZ2o2tuzJRLxxLauZBLu+QQt1s7bRJzOL8fHGkxh3dzfJYxnvq+m1jMf+Vh+h8TrmqKoQERpgsnzxmjQZe7EUl+lrnSDA18zj7OafRZ1OgK+MqaZtYfXPwF27dmHjxo1YtWqVxXKlpTU2BRIdHQqVqtKmbd2R/lyqqmpbLPME3vJ+8Dzci7ufh6ck4efPn8f06dPx9NNPY/LkySbr9u/fj6VLl0KhUGDIkCGYMWOGi6L0DPo2ur4+Pk6pX1rw31QAQLsgP8Oy1k4RLzVVrzU1n5a2tLkNsZntzl4pAwDkFVU3FZVxkB/2XkLKsVxk5DbVhgoAnv1wj4W4pGvQ1+660Bif8fthpuz/LdkNAOgdF2ZYduTMVQDNRtmQ+Sh/0XdHxZtpNCtb36DFv/+bioSBXcSLGp3kwT8K8PW2s7i3f6zJscRUqRtw6I9CdI1puhcKELDt4GXERbczKZuRW459p/JxXXiQYVlldT2mfHUYYwd3NSmbdk6FrIKKFtsvXnccfxt9I+798/XiAdmBVYnunj17sHz5cnz55ZcIDfWMLwI5/t/fByLQX4FXPj/g6lCIiCyqqanB/PnzMXjwYNH1CxYswFdffYWYmBhMmjQJCQkJ6Nmzp5Oj9Bx112p0/f2cPAiRU6dDa3opb/D+xgTaOGnKyClHT6PkruWxZNQ6SjTfMD6ucaW3fgKLMuPmDzKqquW0iZYqqTWZyllosY2cWtr6Bi3OXikz/BCw5ERGES7mVeCzLemSZfU/pA6dKTQ6rrgvf/oDJy8W49ZeUYZlGo2AjSkXW5R9Z3VjjbDxMK36abB/PnDZpOyy708BgMlnZ+/JxmmyN/+e6dBEV/JfdmVlJRYtWoQVK1YgPNy2MWfdXVx0CKLCgqQLEhG5mL+/P1auXInrrms5hW12djbCwsIQGxsLX19fDB06FAcO8Ae8JWHt/AEA3c10mHIUZ84WZZxMJR/LlSrccpHRsvRLliePMK3RlUryjIuKtdG1vC+rOphde4Sus6qwdXFJbmi0yb5TBVYfTOpIRy9IT/Lx84EsLF53TDIuc+/NyYuN76/KaAjVVdvOWDymRmv9yCW2DlvWGpI1utu2bUNpaSlmzpxpWLZw4UJcf73jsm9X6dc9EumXShy2/2mLUzDu7m4YO7hbi3XVtQ34Ye8ljBrYBZHtAx0WAxF5NqVSCaVS/NatUqkQGRlp+DsqKgrZ2S0nKzDmzf0qrInvsdF9ER4WhPtu74x1O845IapGtjbLFRszNyQkwOK5ynp/RVpB+Bi1oQwK9kd4RHCLgr6+vi2OVdNgeXIK47L+QQF49oMUPDmmb9NxjQ7hZ9ThLjDwWrMPo6TJsKwZfVtRP6Ma+9DQQInr1VR2/+lCs+VanEPAtRitaHJafm0kBoXRsS4VVomW1cd6Mbfp0X9QsL9o2U27MwEA10c1NTPwF+msGBAgfr30FArrn3AYX68jZ69KlG26Xn7X2pb7+vqYfT/scY+RTHQnTpyIiRMntvpAnsCeCeaek3k4fqEIt/WONixr0OiwaXemaKK7eXcmko/lIldVjZcfu9VucRBR2yFW+yQ1KY639quQE9/dfWNQr66H2sqp3e2htR3QjH35Qzr+3C3S7JT2Ghkd7gSRuIxnU6uursOEV3+Cn9I0EdLpGss0aJqOtSk5A5YYl/097QpqajVYvvlk0z6NPs/19U1DqNXWNr5PxpGq1S2H8DKJy+gaVFTUWvxsNBgl6EUSk0MZd2Y0xCXjvTU+1r4TeaJl1iedQVa+abzrd563uF/j9s+nLjaO8GAc1r6T4sfS02gs/0gxZnxtjY8rVXbvtfPV6gTR98Oaf8PWJMLWj0lCsny97SwAmDTotqSypvEfabnIeHtERNaIiYlBUVGR4e/CwkJER0db2IKMhYea1pINuPE6jLmzq0PG2rXnrFCCADz74e+477ZO4utt3K/+N5LYUFMNzRMhn5bteSVJDGFlnJjp236abG7NEFgiTRek2s3Km/K4aV+Hz1iuzRTfWvp6fbvDclIrRT+Um6yJH2Ts/1K+9T94xWLQanXIUVWhU1Q7m2ertaTNTwHsaFv2XpJV3llT4hGR94mLi0NVVRVycnKg0WiQnJyMu+++29VheYz7B3TGX4beYPg7IjQAXTs6pnmGHSt0DZKPire/tXXUBLExbM3uy4bvLtOREMQaB1s+lD2Tanuql1Eb6kxaGR86qZpZW4klxdW1Grz11WGcuGi5/betWKPrQg0aXYvHP0RElqSnp2PhwoXIzc2FUqlEUlIS4uPjERcXh5EjR2Lu3LmYNWsWAGDMmDHo3t381LBkyk+pwNjB3dC3WyQ2776IMc2GSLInd63UkKpZlZ5qV87BLB/X3LHElkuP4mXaIS+yfaDJsFi2Epv1TI6qGuc1l3F3F3PLcUvPKOmCMjHRNeLM6Xo3/56Jn/ZnYcGUQSaNxh1RbU9E3qNfv35YvXq12fUDBgzA+vXrnRiR9+ke2x6zEh3bV8Kpo4vZOFtVU9MF64cGsPW0xLYzX3ssso2M8Woz8yrw/tpj5svKUFxRJ13IAjZXbOKo/IfViS7y0/4sAMDpZqM8mLshFZWrkSrRm5GIiKg5m5NPkYRScrham5tJSAwvJrKdIDKGrTXHIvfkqAnSmOgaGXtnV3SKaofZj9/m/INL/JKZs/IQPtuSjlyV+PAjRP+/vTsPb7JM2wZ+pkm6l65pKBTKUkqhbCLIUraRTWXkHR1FPqzOqFVHYAAHBgvDK/jqCBUGRdQBEWcUZGSRURxGQFkEoRQoWqgVStlK971pmzRt2uf7o23atEmTptk5f8fhYZ4lz3PdJblz5c69EBHp1Znks9W5+lp0D53L0v9E7WdYJwY8Ge37a6DrgtB+YQZDWpYmZqrr6AwtG9zl61rlqk4qJMALr8eP0VnlY9qo8A6eYTvNI1yrbDj9DREROb/OrASmb8BSp1ppLZhPdqr12MC5zV0DShQ1lgmKrEZkpSZd9tE1oneodSdE/9fRa+ge7G3VexAREZnL3O4InbluZ7outOTipq+ypVKbPpcw2Qe7LthJfUMDAnz1r0BiKVu/+tmq1yciortYF1tZzZ3GqzOn6lsS2WBLdHPXBRtOGUbW52alTJeJrgG/Ht84rcygiEA8PiXSqvcS0LJaSF6JeasUERER6VNXb968ri39W42fa40+sEYHo7U6ITWzWP/J5DREpqydbAZ2XTDg0Un9MTu2LyRiN4QGemPbf9Itdu2SivZ9haw1UTIREd3dzG1A0ZdQGlKpbF6W17wm3c4soNEcTuvnKNUa/SeT02CLrh1IxNb587zx6QWzn8t5domIyJbM7XdrTFllS6NPZ1qE026wYcgVWSu9YaJrB20niFbxmygRETkYc/KOO4WmT4GpaL0qWCcSZEddYpe6htOLERERkc3YcnwXx5IRZ12ws6VPjLB3CERERDZjy45yXNCBuASwnQ3uE6h9POdX1p2FIWFLErszEBGRXXVmgFhXMc8lDkazs9bfNB4Y09uq9yosV+Gygc72HItGRES2UGrD1cQ6NVsDuSRrpTdMdDvBx1OCUdGhAABZgKddYuhonrmGBgF7j2ciq6DShhERERF1DVt0yVqZLufR7YR3F0/Utux6eTjen+7S9RJ8k5yFb5Kz8HHC/fYOh4iIyCRllWp7h0Auii26ndC6+0KIv5dV7/XVDzc7/ZyaOvbrJSIi53MmLd/eIZC9WalVn4mugzK4kk2rpn2OUiUiIiIyjImukzqZmovnEo+zPy4RERGRAUx0zWTv1tRd32UAAM7+XGDXOIiIXN0r8+7RPvbyENsxEiLqLCa6ZrJ2H10iInIMA3u3zKP+/MMxnOaRyIk43tQBTuI3E/uim48UUb0C4OftjvRbpdh5JMOi93jtn+fx7EOD0CvUV7uvo/q1o6nHiIjIfK/Muwep10swvH8wtr9yP1Z+eBb5pQbGUhBR53EJYMfi5SHBrHF9MCA8AN2DvK3Swns7vxJrd6bo7uzghcAJt4mIrGNg70DM+VWk1ZYpJSLrYKJrMdZJMmtq661yXSIiMh+bFYicAxNdF8KuC0REROSUOI+uY/PxlNrkPlXKOpvch4iIiMjZMdG1kH49utnkPpv2XdLZNtQvt07TgEplrS1CIiIiInJITHQtRCQS4eU5w21yL1Pm8P3LtrNY/O4P0NQ32CAiIiIiIsdjUqKbkZGBadOmYefOndaOx6kNCPdHUDcPq9/n0Lks7WND/XKLK2oANLbsEhEREd2NjCa6SqUSr7/+OsaNG2eLeJyap7sEn6x+wOr3+eFSnvbxoXNZuHS9BACw+9g1q9+biIiIyFkYTXTd3d2xbds2hIaG2iIel9AzxMei18strtbZbjvl2Dt7UwEA5VX6++SWVaqx7et0/OFvJ/D5USbDRM7szTffxBNPPIG5c+fi0iXdPvu/+c1v8NRTT2n/KyjgEuFWY+dl4InINEZXRpNIJJBIuIBaZyx5fDjOpOXh36duWuR6t/MrdbbLKtVwl5revfqzbzNwMaMIAHDk/B3MnTrAInERkW2dO3cOt2/fxu7du5GZmYkVK1Zg7969Oufs2LHDTtEREZnPWl8dLZ7BBgZ6QyIRm/VcmczPwtHYR3SkDNGRMjz98BD854cb2H7g5y5dz9fPs90+tzar8xj624WE+ELTIJh0blvN59XXN0Asdt5xi67yumI5KCkpCdOmTQMAREZGQqFQoKqqCr6+jcuEV1dXd/R0IqK7jsUT3bIy89b+lsn8UFRUafxEB9e2HKMGhGCfjzsqqs2f6quyUtVuX0Obn80M/e2Ki6tQW6sx6dzWmsuRcacc6z67iOdmDULs0LBORO0YXPV15awcvRyOnoQXFxcjJiZGux0cHIyioiJtolteXo6lS5ciJycHY8aMwZIlS7hkLRE5BVNmlDIH+yRYmYdUjBVxI5Gw9azZ16ivt35fsB8zilBQpsIDY3rr7D+ZmgsA+PLUTYsluuq6enhIzWv1J7qbtf0gEARBJ5F9+eWXMXv2bHh4eGD+/Pk4cuQIZs6c2eE1XflXOGvG58y/chE5Il9fz3bvWUu8h40mumlpaUhMTEROTg4kEgkOHz6MzZs3IyAgoMs3v1uEBnpjzTOjseYf5816/j++udJun6WX+928/zIAtEt0Le1iRhHe23/ZaVuIiexJLpejuLhYu11YWIiQkBDt9rx587SPp0yZgqtXrxpNdF31Vzhrx1ffNEf5mMFyvPDwYDyXeNxq9yK6G1RW1ui8Z015D5uSCBv9SjpkyBDs2LEDx44dw5EjR7Bjxw4muWboLffDkL5BFrueuq7e+ElNbD04WKXWoFRRo7NPXVePXd9mYM/xTADAdynZtg2KyAXExsbi8OHDAID09HSEhoZquy2Ulpbi+eefR11d4zLh58+fx4ABHHhqLa2rVXYPIXJc7LpgQ/cOlCHtZikie/ojM6fCbnGUKmpw/kohpo/qBTe3jivolqMCcourseqjZDw5PQpT7w03+JzmFdk+Trhfu+/EjzlMbom6aOTIkYiJicHcuXMhEomwevVq7N+/H35+fpg+fTrGjBmDJ554Au7u7hg8eLDR1lwiIkfhNLMukGETh/WAv48HoiMCMH/jSZvdNyO7XGd7w+c/Ib9UCR9PKQL83JGUlq89dju/Eg2CgJAQXySl5aO0Uq099tauiwAapyvrKNHVt+ywSq07IM5qr2giF7ds2TKd7ejoaO3j+Ph4xMfH2zqkuxLbcIksjIPRnJ+bmwgjBoQYP9HC2r528ksb++RVVKvx8X9/0Tn22j8b+xEnLpyAbf9Jb7kGgFoDywmfSs3FoXNZePV3o+HhzkFmROT62n4khwV7I6/EvP7ORGS99i8OG3URbacb66oyhVpnu1Sh1umH1rqP8D++uYK8EiWu3ikz+foCm3SJyIW8Hj8Gm5dMtHcYRE7LWuOJmOi6iD+9d9qi11Op69rta/1T3fy/fY/CchVSrhZq9zUIQKGpI7ibXtBVqjrUaUwfWEdE5IjcRCJI3PiRSuRo2HXBRSi6sCCFPpt2/9RuX+uBxQKAhC1JOsfzS5R4d98l7bamvgESA3NNCmicA3TRplPw93HH23+coPe8nKIqhAZ6QyrhBwgROY4+3f1QWKZCj2Dvlp3suEtkNi4YQWY5+3O+wWPf/5Rr0XvlFFXpbJ+6lIfb+Qqo6xogD/TSOdbQIOD4jzkAoHfVuPxSJY6mZONoSjaG9Q/GkseHWzRWIqKu+N0D0RjaLxj3DZJr9zHPJTIfZ10gs+w4kmHwWHFFjcFj+lTXaDo83tDmVaqorsXJ1DwAwIzRvXSO5RRXY2er2GpqNfB0b3k5rvywZSW5S9dLUFyuQkiAbrJMRGQvXh4SLnpDZEnso+taEv8wzt4hWFxWgeEVTI6cv9Phc+dvPNnhgLo3dqQYPHY9pwKnL+cZD5CIyIq4bgSR+TjrgouRBXhh67LJeHCsdZfctaWc4mqd7a9+uNmp5+87fh2lihqUVarbHeuoD/Jfd6Rg+8FfUN+gf/ozIiJnJBEzc6a7iJX66DLRtSOpRIzfTupv7zAcxum0PCz74AyWvq9/Bgljyx7beqljIiJdlk1M5z8y1KLXI3JkbNF1UcaW4L2bGEtU39mTaptAiIjMYMmuC2HB3gjy87DcBYkcHOfRJZdnbGqRq3fKIQgCyqvad20gInJ2rZdWXzb3HjaEEFkAE11yGMZmdQCA5xKP40/vncaV26avwkZE5AyenB6lu4PdseguYq0VU5noklNKb0p0k9ML7BwJERERdRm7Lri+X4+PsHcITkMEoLhcha0HfrZ3KEREACzbR1fftbw8xJa7AdFdgomuA1j6xAhEhvvjgftcZ6oxW1CqjXd1ABqXIlYoLbtEMhFRW6JWsy4MigjUe46H1LRklb1z6W7Tr0c3q1yXia4DiOkbhJVx98LbU4qVcffC10tq75Acnr7WDkNj2f7vn+ex5N0fUFNrWmJMRNRVix8bprcFduLwMPxtQSz+HHev0Wuwiy7dTQb21v/lsKuY6DqYyHB/bFo0wd5hOIWicsNLGCtrNHhh/QnsPZqB7KLGhSyqlHW2Co2I7katvoC7S8XoKfNtd4ogAIF+HvD1cjdyLbbpElkCE10HJGIFZ5K/f5nWZk9L+8eN3Apo6hvw6X9/sW1QRERtDIoIxPgh3QEAwd08TX6esSkXicg4ib0DIDKHSCRCQ5sPgR2HMxAa6AWRCLhTWKXnSfqvVVGlRjcfd7O+YGQVVOKL729g8ogeGBkl6/Tzich1tK1BmrcFQcDsCX0RLvPVmSu3M9ciIvMw0SWnpO9D4IfLeUafV1aphp+3FBJx448ZaTdKsHFPKmaNi8BvJ/eHSq3B7mPX8MCYCHQP8tY+r6FBaDd5+9WsMiTu+hEAcPlGCT5OuN/8AhGR02v7Zbn1VmiAFx4YY3zA8bMPDUL6rVL4eUvh5SGGr5cUVSp2uyIyF7sukFP66vTNTj+nWqXB0vdP46+fpmj3XbpeAgA4djEHAPBNchZOpuZh5YdntR8u35y9jfi3jqOgVKlzvZt5leaGT0SktfbFsdgwfzwAYMKwMLwwOwYikQhSiRjvLp6I6aN6ac9d88xoxM2IwiOT+mFEZIhV4ukb5of7BoVqtw3NIEHkDJjoOihvDza2d8ScrmtllY1LB98uaJWgaptcGi9Y02rKsn+fugEA2HviOgBgxYdncflGSSfjFFBYrmJfO6K7RMKTI7H2xbEAAJ+mGXS8PTueSUce6I0gE/vu9pb74f6R4Xh4fB88//DgrgVrQNvqatLwHla5D5EtMNF1UJsWT8DTMwfaOwzXoqe/w6nUxu4OKnV9u2NKPUsSv70ntVO3PHYxBwlbkvBdSnannkdEzimqVwDkgY3dnuJmDMTEYWHtl/a1ELGbdXryCtDthqGua18/EjkLJroOSuzmhin39ERPmY+9Q3EZ+SUtXQ++PX8HKVcLdSrwBkHQSUgFQcCh5Cy918ouqkJ5ldroPVOuFjb9v8jcsInISQX6eeCZhwYh0M+j3TEvC/xqJ5FY6SNcACStkuj6+gbr3IfIBpjoOrj/e/Y+vPWHcfYOwyXsOZ6pffyvo9fw/r91pye7cKVQZ/vcL4U6z2lWqqjBq9vP4cj5Ozr7Gxoaf++r07T/UMi4U45n1x3Dxt0/Ia+k2mCMDYKAm3kKaNp8sKRdL8aiTaeQVWC4X3CVqk4bgyWoa01vxamuMX7vtJsl+N+tZwwOrFHW1Bldwa5UUYM6DVuXyPlF9wnEo5P6Yc0zo82+hpuVpqIUIOCRSf3g5SFBaKAXxsZ0t8p9iGyBia6DE4lECAnwsncYd4UtX/1s0nnrP/9J7/74t44ju7AKL244ge0H0/Wek3azFH/Zloxb+QocTclGQZnuALczl/Px+icX2iXYW/ZfQpWqDl+fvqX3upXKWizadAob9zTGplJrkF2kO8XaxYwifH70milFxK18BV7a+D2+bOqn3JHqmjr88Z1TWP+vH/Uev5mnaEryU/FTRhG+bfMFodnCd05hybs/GLyPeKYZlQAAFF9JREFUsqYOyz44gzX/OK/d19DQ+MXAkgk+kS2IRCL8enwf9Jb7WeX6w/oHd3j80Un9DB8UgKBuntjz5iyse3Gc2a3PYcHexk8isjImuk5iSL8geHlIdEbCkn20nX2htaMXG7s+nL6cj/wOzvvsSAY++zYDK7ae1dmfmVMOADj7cwEA4HpuBTKzK7THUzKKoK6rR2Z2BZa+fxrZTfMFF5SqAADpt8qw/O9nsODtk3h1+zmUV6m1rcPv7b+MI+fvQFFtuNVUXVcPTX0DPjuSAQA40JRYa+obkJpZrNOaKggCPvs2AwfP3AYAXL1Trvea2w/qLtrRnJJq6hvw5akbKCxTame/ABqT9Lf3pOKHS3moqdXgg39fxu38SlQ0xZ3XqgvKN8m38fonF/BN8m2DZSJydmJxY8tt87SIpmjd2rvw0aHtjncP8sbCR4fqXabYUl8bm7+A6uu6QWQrHNrvJP40ZwQEQUB+qRLnfilsd/yF2YPx4QH9rYhkHys/PGvwWLGiZfni4nIVlm9JAgC4Sxs/yKpUdXh23THtORHdW1p9vv8pV9syu+u7DCyfNxJJ6fkt16toufa6nRdRWK6CPLDlV4G2C23sPZ6JSmUdnp01CC/97XsE+LqjvEo3GT6UnIX9J28gKtwf3YO98at7wiFAwFE9g+wEQUDq9RJEhQfA21OC3GLdrhpit8bFPs6k5ePA6Vs4fTkP9wxoWWxjwdsnATTNTdy0st2Fq0X46/Nj2t3r8o1SAMCZtHw8NDYCIpEIP10rxqXrxXhq5kCuMkgu4cExvZFbXI1HJhpuhX1yehQ++zZDu916HnB9i9kITftHRk3WqWsA82a10ad57vHo3oG4XVDZri4gsgUmuk5EJBIhLNgH6/4wDglbkjBpeBg09Y0JQ0yfIHuHRwB+uVVm0nlCq5/aj/+Yo31cW6d/0EfrVuTWA+iuZJXjalYZCg20HheWN7b0FpSptPv+9N5pzI7tg8JyFboHeuObpgF3s2P7AEC7JLf1h2BGdgUysitwMlX/4hxJaflwl7pp+z/rW0Tj0LksfPXDTXTzcQcAlCjUJs1KUals6dv75s4UvPDrlqmV8kqU2Pf9dTw+JRLvfnEJADDzvt6QB/GnU3J+ft7uWPL4cJPPHzNYjodj++DQOf2DaQH9ywv3DeuGm3kKjI2Rd3j9of2CTZpq8cXZMfj86DX8dnI/bOzkjDVElsJE1wmFBnjh/ZcnwdO98Sen3z0wEFKJGIMiAvHLbdMSLQD489wRBvubknmaE0tjOtultKbVwLC8Nq0i6//1E8JCOpfQHdDT17e5Vbkrtv0nHaOiW7rX6BvQ1ryvoy4U+qz77KL2cWZ2BZZvSUJUuL923zdnszAgPEC73bblmsiVtZ4ZYcqIHvBo+nyIbPUeAYDFjw3Dtxfu6F1s4uU5w1FTq0GwkTl942ZE4RUj9cV9g0LRW+6H5fNGmloEIqswKdF98803kZqaCpFIhJUrV2LYsGHWjouMaD04QCpprNCemjlQ+3P56/FjcOxiNuQBXpAFemHzF5fbXcOvqUWNbK/1zAOdTcjOphfobDcIAnKKHOcnwdazV3TUomQJGa36LwPAu/suWfV+jqCj+vjMmTPYuHEjxGIxJk2ahAULFtgxUrKF95ZMQoMgILlVvdAr1A9uIhG2LpsCibil+46vlxTDI0Mw3MCKalKJG3y9Oh78vP6l8Qj298Sf5gzHyUt57WarAYD//d0o9A3rZmaJiCzLaKJ77tw53L59G7t370ZmZiZWrFiBvXv32iI26qTuQd5YGXcvSitr0DPEB0/NaFlw4v9NG4CMO+WYdm84Enc1jo4Pahog4O0hwV9fGIuXN+uOeA8N8DK5hZLMp2+xClfRdgo26hpj9fEbb7yB7du3Qy6XY968eZg5cyYiIyPtGDFZm7dn48f4hGFhuJWvwLR7e2n3SVvNs7tp0QR4SNsPPGtNasJgt+ZrDukXjLSbpXrPsda0Z0TmMJroJiUlYdq0aQCAyMhIKBQKVFVVwdfX1+rBUec1/kzl327/9FG9tOulb102GYIAuEvFWPvCWHTzcYeXhwRbl02G2M0N6bdKEd7DH/4eYjyXeBwA8PYfJ8Bd4oa3dv2IKlUdHpvSH+EyH4QEeGHT3lRcyWoZce/jKUGPEB/cyq/UO6cs6TqZmmvvEKxGpW6/upytVCrrENbxDEtOp6P6+M6dO/D390dYWBgAYPLkyUhKSmKie5fwkIrx3CzDSwL7eRv+BW/p3BEoKFVqB4/ps+CRIbiSVa7tWw8AD46NQPqtUmQ3/aI0NkaOsz8X6AyEa+bj2fWeklNHhmtntiEyldFXXnFxMWJiYrTbwcHBKCoqMpjoBgZ6QyLp+FujITKZdeYTtDVnKoe+WOXylp+cvv7b/+gce295+8FF6xdPxo9XC3HhSgGe/5+WaWzq6xuQeq0YwQGekAV4oaBUiSplHSLCuiG3uArpN0qhrtVAAPDb+wfAQyqGIAioVtXhwy8v43hKNmaOjUBooDdCg7xRUFINf18PvL+PgxrIuHsGd4e3p9TeYVhUR/VxUVERgoJaBqWGhITgzh3jLequXGczPtNM6SCO5hgfkPnhgXbHgL8nTNPZJwiC3tlOXvndfdh1+AqkEjeUKmrg7+OB/uH+KK9UI9jfE3WaBqjUGly5XYb7Bsvx7bks3D+qF1RqDfYdu4bhA2RYPG8kBkQE4sTFbISF+OB2XiWGDQjBmct5kIrdUFBaDS8PKebOiMKJlGxcazPl4ZR7w3HyxxyEBXujSlWHiqaBtyH+njqz1QDA6MFyXLlVhppaDUYODEXyz/nw85ZCJBKhvkFAgK8HcprmKg8L9kFeSTWCunng97+OwcZdF9EnrBuyC6ugqW+Aj6cE1U1LyveU+SCnqBp9wrph2IAQHDh5A5G9AnArtwJSiRv69QzAz00D/UKDvFFYqkRokDc8pG64U1CFXnJfFJapoK6th7+vOyqqauHhLoabCFDXNaBfj24oKFWiUlmHXnI/5BRVwddLioju3XD5ejFkgV4oahqcHNMvWHuvnjJf5BRVQewmQvdgb22Mt/IUOrEAjdPFlVWqERLgBQ+pG3KKqtFL7oc7TQsa+Xm7o1JZC7GbCJ7uYijVGnQP9kFhqRL1DYL27yURN64TkF+iRNyD0XrfD5Z4jxhNdNuOzDT0Im5WVmZ47tCOyGR+KCoyvOqTs7hbyxEe5IXw8X3aPadXcGN/r+rKGvhK3eDr7wG1Uo1gbykmDmkZ2aso133dPDU9Ck+1WR8+pldjS7W+kfyWKoejYjk6r7qyBtWVNcZPbMVREg9DOqqP9Y2iN2V6NVetsxlf11kyRjcAcdMGGD3v/hE9AACjBrT0I54yrPFXiuLiKtw3UIb7Bsp04ps9LqLddcZF659z/uk2nyumevFhw63lbTV/Rpny9/vN+D5mxWMJjvYabBuLKfGZUmcb7ZAjl8tRXFys3S4sLERIiP6O7EREZD0d1cdtjxUUFEAmaz9/KhHR3cRoohsbG4vDhw8DANLT0xEaGsr+uUREdtBRfRweHo6qqipkZ2dDo9Hg+PHjiI2NtWe4RER2Z7TrwsiRIxETE4O5c+dCJBJh9erVtoiLiIja0Fcf79+/H35+fpg+fTrWrFmDpUuXAgAeeugh9O3b184RExHZl0nDIJctW2btOIiIyARt6+Po6Gjt49GjR2P37t22DomIyGEZnzSPiIiIiMgJMdElIiIiIpfERJeIiIiIXBITXSIiIiJySUx0iYiIiMglMdElIiIiIpfERJeIiIiIXBITXSIiIiJySUx0iYiIiMgliQRBEOwdBBERERGRpbFFl4iIiIhcEhNdIiIiInJJTHSJiIiIyCUx0SUiIiIil8REl4iIiIhcEhNdIiIiInJJEnsH8OabbyI1NRUikQgrV67EsGHD7B2SXhkZGZg/fz5+//vfIy4uDnl5eVi+fDnq6+shk8mwfv16uLu748CBA/jkk0/g5uaGJ554Ao899hjq6uqQkJCA3NxciMVirF27Fr169bJLOd566y2kpKRAo9HgxRdfxNChQ52uHCqVCgkJCSgpKYFarcb8+fMRHR3tdOVoVlNTg1mzZmHBggUYN26c05UjLS0N8+fPR0REBAAgKioK8fHxTlcOMo0j1dldqc9sxdz3t60cOHAAH330ESQSCRYvXoyoqCiHibG6uhqvvPIKKioqUFdXhwULFkAmk2HNmjUAgIEDB+K1114DAHz00Uc4dOgQRCIRFi5ciMmTJ1stLmfIB/TFuGLFCmg0GkgkEqxfvx4ymcxuMbaNr9mpU6cQHx+Pq1evAoBl4hPsKDk5WXjhhRcEQRCEa9euCY899pg9wzGourpaiIuLE1atWiXs2LFDEARBSEhIEP773/8KgiAIiYmJwmeffSZUV1cLM2bMEBQKhaBSqYSZM2cKZWVlwv79+4U1a9YIgiAIJ06cEBYvXmyXciQlJQnx8fGCIAhCaWmpMHnyZKcsx8GDB4UPP/xQEARByM7OFmbMmOGU5Wi2ceNG4dFHHxW++OILpyxHcnKy8MYbb+jsc8ZykHGOVGd3tT6zFXPf37ZQWloqzJgxQ6isrBQKCgqEVatWOVSMO3bsEDZs2CAIgiDk5+cLM2fOFOLi4oTU1FRBEARh0aJFwokTJ4SsrCzhkUceEdRqtVBSUiJMnz5d0Gg0VonJGfIBfTEuX75cOHjwoCAIgrBz504hMTHRbjHqi08QBKGmpkaIi4sTYmNjtedZIj67dl1ISkrCtGnTAACRkZFQKBSoqqqyZ0h6ubu7Y9u2bQgNDdXuS05OxtSpUwEAU6dORVJSElJTUzF06FD4+fnB09MTo0aNwsWLF5GUlITp06cDACZMmICUlBS7lGP06NHYtGkTAMDf3x8qlcopy/HQQw/h+eefBwDk5eVBLpc7ZTkA4Pr168jMzMSUKVMAOOfrqrq6ut0+ZywHGedIdXZX6zNb6Mr72xaSkpIwbtw4+Pr6IjQ0FK+//rpDxRgYGIjy8nIAgEKhQEBAAHJycrS/IjTHl5ycjIkTJ8Ld3R1BQUHo2bMnMjMzrRKTM+QD+mJcvXo1Zs6cCaDl72qvGPXFBwBbtmzBvHnz4O7uDgAWi8+uiW5xcTECAwO128HBwSgqKrJjRPpJJBJ4enrq7FOpVNp/DJlMhqKiIhQXFyMoKEh7TkhISLv9YrEYbm5uqK2ttV0BmojFYnh7ewMA9u7di0mTJjllOZrNnTsXy5Ytw8qVK522HImJiUhISNBuO2M5lEolUlJSEB8fjyeffBJnz551ynKQcY5UZ3e1PrOFrry/bSE7OxuCIGDJkiWYN28ekpKSHCrGWbNmITc3F9OnT0dcXByWL1+Obt26aY/bIz5nyAf0xejt7Q2xWIz6+nrs2rULDz/8sN1i1BffzZs3ceXKFTz44IPafZaKz659dIU2qw8LggCRSGSnaDqndZzN5TBUHkcr53fffYd9+/bh448/1n7Da46r9f9b73fEcnz++ef45Zdf8Oc//9kp/z2+/PJLjBgxQqdvkTOWIzo6GgsWLMDUqVNx8+ZNPPPMM9BoNDpxtf5/6/2OVA4yzhH/rcytz6ytq+9vWykoKMB7772H3NxcPP300w4V41dffYUePXpg+/btuHLlChYtWqT9cuMI8TVzlnq7vr4ey5cvx9ixYzFu3DgcOHDAYWJcu3YtVq1a1e6+lojPri26crkcxcXF2u3CwkKEhITYMSLTeXl5oaamBkBjRREaGqq3PDKZDHK5XPvtsq6uDoIgQCqV2iXuU6dOYcuWLdi2bRv8/PycshxpaWnIy8sDAAwaNAj19fVOWY4TJ07g6NGjmDNnDvbu3YsPPvjAKcvRv39/7c92ffv2RUhICBQKhdOVg4xztDq7K/WZtXX1/W0LwcHBuOeeeyCRSNC7d2/4+Pg4VIwXL17EhAkTADR+oVYqlTpxGIqvoKDAZn9DwHnygRUrViAiIgILFy4EoP/9bI8YCwoKcOPGDSxbtgxz5sxBYWEh4uLiLBafXRPd2NhYHD58GACQnp6O0NBQ+Pr62jMkk40fP14b+5EjRzBx4kQMHz4cly9fhkKhQHV1NS5evIhRo0YhNjYWhw4dAgAcP34cY8aMsUvMlZWVeOutt7B161YEBAQ4bTkuXLiAjz/+GEDjTxtKpdIpy/HOO+/giy++wJ49e/D4449j/vz5TlmOffv24dNPPwUAFBUVoaSkBI8++qjTlYOMc6Q6u6v1mbV19f1tCxMmTMDZs2fR0NCA0tLSTtel1hYREYHU1FQAQE5ODnx8fBAVFYULFy7oxDd27FicOHECtbW1KCgoQGFhISIjI60eXzNnqLcPHDgAqVSKRYsWafc5SoxyuRzfffcd9uzZgz179iA0NBQ7d+60WHwioW0bsI1t2LABFy5cgEgkwurVqxEdHW3PcPRKS0tDYmIicnJyIJFIIJfLsWHDBiQkJECtVqNHjx5Yu3YtpFIpDh06hO3bt0MkEiEuLg6zZ89GfX09Vq1ahVu3bsHd3R3r1q1DWFiYzcuxe/dubN68GX379tXuW7duHVatWuVU5aipqcFf/vIX5OXloaamBgsXLsSQIUPwyiuvOFU5Wtu8eTN69uyJCRMmOF05KioqsGzZMiiVStTW1mLhwoUYNGiQ05WDTOModXZX6zNbMuf9bSuff/45Dh48CJVKhZdeeglDhw51mBirq6uxcuVKlJSUQKPRYPHixZDJZHj11VfR0NCA4cOHY8WKFQCAHTt24Ouvv4ZIJMKSJUswbtw4q8TkDPmAvhhLSkrg4eGh/WLav39/rFmzxi4x6otv8+bN2i+s999/P44dOwYAFonP7okuEREREZE1cGU0IiIiInJJTHSJiIiIyCUx0SUiIiIil8REl4iIiIhcEhNdIiIiInJJTHSJiIiIyCUx0SUiIiIil8REl4iIiIhc0v8HqChxcbYHBFcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 864x432 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd8AAACdCAYAAAD153KLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnXu0XVV1h78ABSQYMSBoKAJSCJRCTXglEEgChSRoBBU1SEKLVAfWWhWwYF+gVi2CpDIcvkpFIRQYAiZgIhFUEHmZkERiikJKADWgbRICVBQI6R8d317zrLvvzYPkBHLn98+995x19nrsde5evznnmmvA6tWrV5MkSZIkSdfYYlM3IEmSJEn6G/nwTZIkSZIukw/fJEmSJOky+fBNkiRJki6TD98kSZIk6TL58E2SJEmSLpMP32Sz4LzzzmP8+PGMHz+e/fffn7FjxzZ/P/300+t0rVmzZjWfOffcc/niF7+4wdr51FNPccIJJ3DcccexYsWKtf7cjBkzmDJlynrVef3113Puuee2vnf00Uc3YzVu3DgmTpzIzJkz16ueyItpr5x99tmMHj2a22+/fa0/8/jjjzN06NAXVW+SdIOtNnUDkmRD8PGPf7z5/eijj+azn/0sBx988Hpd65JLLmH48OFsv/32G6p5DT//+c954oknuO222zb4tdeXCy+8sBmrJUuWMGnSJPbZZx/23nvvTdqumTNnMnv2bF7/+tdv0nYkycYglW/SL5gyZQpTp05lwoQJzJs3jylTpjBjxoyO92fMmMHHPvYxlixZwpQpU5g7dy4AK1eu5L3vfS9jxozh9NNPb1Tx5z73Oa666qoedf3yl79k1KhRXH755UycOJEjjzySWbNmsXTpUs4++2yWLVvG+PHjWb58OUOHDmX69OmceOKJjBo1iq9//esAvPDCC3ziE59gzJgxnHTSSfzsZz8D4Jvf/CZnn312U9eECROYOnVq85lDDz10nRR1zZ577smIESO46667ABg6dChf+cpXGDduHKtWrWLx4sVMnjy5UckLFy7ss70AN998Mx/72Mda6zv66KO5+uqrOemkkxg1ahT/8i//0tyPF154gdNPP53bbruNKVOmcNlll3HyySdz5JFHcuaZZ2J+oGuvvZaxY8cyceJEbrjhBgAeeeQRRo8e3dRz3nnncfLJJzd/n3HGGXz3u99d73FKkhdLPnyTfsNPf/pTZs6cyfDhw3st85nPfAaAK664olGDd9xxBxdeeCG33HILy5Yt45ZbbgHgrLPO6viHHlmxYgVbbLEFN954I3/3d3/Hv/7rvzJkyBAuuOACXve613HTTTcxePBgABYvXsz06dP54he/yMUXX8yqVau4/fbbueOOO5g5cybTpk1rFgIjRoxgwYIFACxfvpxBgwYxb948AB544AGGDBnCq1/96hc1Ts8//zxbb7118/fq1auZPXs2AwYM4CMf+QgnnHACs2fP5vzzz+ev/uqveP7553ttL8Cxxx7bjGsbc+bM4ZprruG6665j2rRpPP7441xxxRXA/98HH6Lf//73ueyyy5g9ezZ333038+bNY+XKlXzqU5/i0ksv5cYbb+Q3v/kNALvvvjsDBgzgscceA2DRokU8++yzPPvss6xevZoFCxZw6KGHvqhxSpIXQz58k37D6NGj2WKLdZ/yRx11FDvssANbbbUVe++9N7/+9a/X+Jnnn3+et73tbQDsv//+LF26tNeyJ5xwQlPu97//PcuWLWPOnDmMHj2agQMHsu222zJhwgQAdtttN1atWsWyZcuYO3cuI0eOZOXKlTz33HPce++9jBw5cp37F1m0aBFz587lqKOOal4bM2YMAA899BCPPvoob3/72wE46KCDGDx4MPPnz++1vWvDxIkT2XLLLdlll13Ycccdmwdmzfjx49l2223Zbrvt2GOPPXjsscf4yU9+wu67785ee+0FwIknntiUP+yww5g/fz4rVqxgm222Yb/99mPhwoUsXryYIUOGsMMOO6zr8CTJBiN9vkm/4VWvetV6fS76frfccktWrVq1xs9sueWWbLfddgBsscUWvPDCC72WfeUrX9l8Bv7fhLty5Up23nnnpsygQYOa332ozJkzh1GjRrF06VLuv/9+5s6d2/HwWVs++tGPss0227B69Wp23HHHRqWLD6knn3ySVatWcfzxxzfvPf300zzxxBN9tndNrO34tpVbuXJlM37QeY8PO+wwFixYwNZbb80b3/hG9txzT+bNm8f222//ohcpSfJiyYdv0i+pH4hPPPHEJmxNTwYNGsRTTz3V/L18+fLmdx8q8+bN44Mf/CBLly5l3rx53HffffzzP//zOtcVA676Yuedd2bgwIHcdNNNPd5bsGBBr+3d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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "try:\n",
    "    while epoch <= max_epoch:\n",
    "        crnn.train()\n",
    "        for idx, (batch_imgs, batch_text) in enumerate(train_dataloader):\n",
    "            optimizer.zero_grad()\n",
    "            logits = crnn(batch_imgs.to(device))\n",
    "            # calculate loss\n",
    "            train_loss = calculate_loss(logits, batch_text, label_converter)\n",
    "            if np.isnan(train_loss.detach().cpu().numpy()):\n",
    "                continue\n",
    "            train_losses.append(train_loss.item())\n",
    "            # make backward\n",
    "            train_loss.backward()\n",
    "\n",
    "            nn.utils.clip_grad_norm_(crnn.parameters(), clip_norm)\n",
    "            optimizer.step()\n",
    "\n",
    "        val_losses = validation(crnn, val_losses, label_converter)\n",
    "        \n",
    "        # printing progress\n",
    "        plot_loss(epoch, train_losses, val_losses)\n",
    "        print_prediction(crnn, val_dataset, device, label_converter)\n",
    "        \n",
    "        scheduler.step(val_losses[-1])\n",
    "        epoch += 1\n",
    "except KeyboardInterrupt:\n",
    "    pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "# saving model\n",
    "torch.save(crnn.state_dict(), MODEL_PATH)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### <center> Calculating Accuracy and printing prediction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def acc_calc(model, dataset, label_converter) -> float:\n",
    "    acc = 0\n",
    "    with torch.no_grad():\n",
    "        model.eval()\n",
    "        for idx in range(len(dataset)):\n",
    "            img, text = dataset[idx]\n",
    "            logits = model(img.unsqueeze(0).to(device))\n",
    "            pred_text = decode_prediction(logits.cpu(), label_converter)\n",
    "            \n",
    "            if pred_text == text:\n",
    "                acc += 1\n",
    "            \n",
    "    return acc / len(dataset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd8AAACdCAYAAAD153KLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnWm8nVV1h58QWlEBByoiCAjIIEGEMKNACYMBicyVKRBklIq/lskgUMaIQjGEqQ3KPM+GKQMgs4KAYMEyWiKT0FYRRKsI2A/8nnevs+97L7nJzSHhrudLbs7ZZ7/73Xu/5+z/2mutPeSvf/3rX0mSJEmSpGvM8243IEmSJEkGG/njmyRJkiRdJn98kyRJkqTL5I9vkiRJknSZ/PFNkiRJki6TP75JkiRJ0mXmfbcbkCSzwpFHHsm9994LwLPPPsvCCy/M+973PgCuvPJK5p9//hmu68Ybb2T99ddn/vnnZ+zYsSyxxBLst99+s6XdM8qYMWOYPn068803X/PalClT+lXHiBEjOP/88/nkJz/Z8frVV1/NMcccwyKLLALAW2+9xbBhwzjiiCP46Ec/Okvt3mSTTTjuuONYa621Zqme/jJs2DAWX3zx5v8rr7wyJ5xwQlfbkCQzQv74JnM1Rx99dPP3iBEjOOGEE1h99dVnqq5TTjmF4cOH9+sHe3bz6quvMn78eFZdddXZUv8qq6zCueeeC7z943vsscdy7LHHMn78+NlyvdnJH/7wB4YMGdLvxUmSvBvkj2/ynmb06NEMHz6cadOmMW7cOMaPH892223Hlltu2by/3Xbbcc899/D0008zevRojj/+eABeeeUV9tprL5588kmWWWYZJkyYwPzzz89JJ53Eoosuyo477thxreeee44ddtiBvffemyuuuILf/e53HHrooWy++eZcffXV3Hbbbcw///w88MADDB06lAkTJrDssssyduxYFl10UR588EGmT5/Opz71Kc444wze//7389prr7Hgggv2uK97772XcePGse6663Lrrbcy77zzMm7cOFZZZZWZ7qt55pmHnXfemZ122gmAU089lZdeeonHHnuMLbbYgjFjxnD66adz7bXX8vrrr7PRRhtx6KGHMnToUB555BG++c1v8sYbb7DBBht01LvbbrtxyCGHMGzYsI7XZ7ZPRowYwd57782VV17Jiy++yBZbbMHYsWN77Svv5fnnn+fll1/mqaee4pOf/CTf+973WGihhWa6v5JkVsg93+Q9zyOPPMINN9zA8OHDey3jD+4FF1zQKOe7776bE088kZtvvpnf/OY33HzzzQAceOCBPX545eWXX2aeeebhuuuu41vf+hYnn3xy894dd9zBTjvtxNSpU1lrrbU477zzmvemTJnC+PHjuemmm/jtb3/LTTfdBLytfCdMmMCoUaPYdtttueWWW5rPPPXUU6y88spMnTqVMWPGcNRRR81cBwXeeOMN/vZv/7b5/+23386ZZ57JmDFjmDJlCpMnT+bKK6/kpptu4tlnn+WSSy4B4KijjmK33XZj6tSprLrqqjz33HNNHeedd16PH95Z6ROA++67j8suu4yrrrqKCy+8kBdffJFXX32VN998k3333ZeRI0eyxx578Mtf/rL5zLRp0zj88MO55ZZbWHjhhZk4ceIs91eSzCz545u859lggw2YZ57+T/X111+fD3/4w8w777wsu+yyvPTSS+/4mTfeeINtttkGeHv/8YUXXmjeW2aZZVhppZUAWHHFFfn1r3/d0UavtdxyyzXvjRw5ku233775MT/44IP51a9+BcAHPvABNttsMwA23XRTHn30Uf7v//6v3/cpr7/+Oueccw6bbLJJ89rnPve5Zv938uTJjBo1igUWWIB5552X7bffnmnTpvHnP/+Zhx9+uGnLyJEjef/73z9D15yZPgEYNWoUQ4cO5eMf/zgLLbQQv/71r5lvvvkYOXIkY8eO5cYbb2S99dZjv/3244033gBgrbXWavaDN910Ux588MGZ7qskmVXS7Jy85/nQhz40U5+Le79Dhw7lzTfffMfPDB06lA984APA22bct956q3lvgQUW6LW+3t6Lana11VZjzTXX5K677uLTn/40Cy64IEOGDAFozK2vvvrqDP/wATz00EOMHDmyae8666zDQQcd1Lwf++73v/89F1xwAddccw0Ab775Jh/96Ef53e9+B5T+GjJkSK/m35qZ6ZN4rfje4osv3uEDsNtuu3Hqqacyffp0AD784Q837y244IK8+uqrM9TGJJkd5I9vMqiofxD94ZgTef3115k+fTrLLbdcx+t/8zd/A3S2/ZVXXgE6f2BmhOhw9U4svPDCjBgxgl122aXj9T/96U8AvPbaayywwAK89dZbTXu6yauvvsorr7zSqNshQ4bw1ltvMe+8b3/Nvfzyy03ZV155ZaYXZUkyEKTZORlUfOxjH+Oxxx4D4MEHH+SZZ55p3pt33nnnKDX0l7/8hZ133pn7778fgMcff5z777+fddZZB3j7R8996KlTp7LSSis1YVazgxEjRjBp0qTGtH3ppZdyzTXXMN9887HCCis0e7I33HADf/7zn2dbO3rj8ccfZ/To0fzv//4vAJdffjmLLLJI82P8wAMPNKbrqVOnstpqq3W9jUkiqXyTQcXuu+/OAQccwB133MGaa67Juuuu27w3cuRIdthhB4477rg+6+jN23mg+eAHP8iECRM47rjj+NOf/sT73vc+vvvd77L44ovzwgsvsNhii/HAAw9w4oknMnToUL7zne/M1vZssskmPPXUU2y99dYALLHEEowbNw542zx+6KGHMnHiRNZff32WWWaZ5nO9eTsPNGussQZjxoxh5513ZsiQISy88MKcdtppDB06FIB1112Xo48+mieeeILFF1+cww47bLa2J0n6Ykie55skcx/33nsvhx9+eIcHcG/0lmRjMHHqqafy4osvNouFJHm3SbNzkiRJknSZ/PFNkiRJki6TZuckSZIk6TKpfJMkSZKky3TF21nvyDZq4T2zQjzGbr5TPYZKGKj/m9/8BoBPfOITTRnjFM39+t///d8dn4n1iFmUTHwQ22H7TBQQ26c35jvdU1/31df99qeev/zlL83fnqTz+uuvA/Db3/4WgKWWWgrojJs0JWHb/b1Te/oqO1D19MVA1VN/rq3f3+ka/Rmr/rTlndozEPX0ZxwHqo/f7bnzbtxXf/q/r3r8vjIszGc3nqBljLQheGYLM548fl/U3399zTev5edjBjr/9vMbbrghQBNiB/CTn/wEeDusDWgSy8Tv3pqB6OP+1hP7pyaVb5IkSZJ0mUEZ56vSNCHB0ksvDdCRO9aVntl7TJdnAD/QpBGsV1szstqcGRXSDWJSfftl1KhRANx6660APPnkk0BZBce/TQn4biRZSJJkxvEZNXe36vHFF19syvh9p1VQVWxymg9+8INNWb/3tJT53Rnx82Zpk5gSdfTo0QDsuuuuAE18ePy+OfPMM4GigLXK+Z08N5DKN0mSJEm6zKBUvh//+McB+PGPfwzQJB8wDV1EheoeR5uiq/d1207QqRVv3OedkxzOo/L1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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print_prediction(crnn, val_dataset, device, label_converter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validaton Accuracy:  0.8364485981308412\n",
      "Training Accuracy:  0.9287383177570093\n"
     ]
    }
   ],
   "source": [
    "val_acc = acc_calc(crnn, val_dataset, label_converter)\n",
    "train_acc = acc_calc(crnn, train_dataset, label_converter)\n",
    "print('Validaton Accuracy: ', val_acc)\n",
    "print('Training Accuracy: ', train_acc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
